Вопросы по теме 'c99'
вопрос о несовместимых спецификаторах формата printf
Я просто просматривал справочную страницу для printf, и кое-что пришло мне в голову. Мне было интересно, есть ли здесь «языковые юристы», которые могли бы ответить на относительно простой вопрос :-P.
Таким образом, модификатор 't' определяется как...
1007 просмотров
schedule
03.07.2022
Почему новые строки опций формата printf() не были приняты как часть C99?
Исследуя, как сделать строки кросс-платформенного формата printf() в C (то есть, принимая во внимание количество битов, которое, как я ожидаю, должен иметь каждый целочисленный аргумент printf() ), я наткнулся на этот раздел статьи Википедии о...
7686 просмотров
schedule
18.04.2023
учебные пособия по конечным автоматам
Мне просто интересно, знает ли кто-нибудь в Интернете несколько хороших руководств по разработке конечных автоматов. Или электронные книги?
Я начинаю работать над конечными автоматами, и мне просто нужно что-то общее, чтобы начать.
137016 просмотров
schedule
07.08.2023
Какова семантика ограничения C99 в отношении указателей на указатели?
Я много занимаюсь матричной арифметикой и хотел бы воспользоваться квалификатором указателя restrict C99.
Я хотел бы настроить свои матрицы как указатели на указатели, чтобы облегчить индексацию, например:
int **A = malloc (ncols * sizeof(int...
2455 просмотров
schedule
16.03.2023
Препроцессор C сначала удаляет комментарии или раскрывает макросы?
Рассмотрим эту (ужасную, ужасную, плохую, очень плохую) структуру кода:
#define foo(x) // commented out debugging code
// Misformatted to not obscure the point
if (a)
foo(a);
bar(a);
Я видел, как препроцессоры двух компиляторов генерируют...
28725 просмотров
schedule
11.03.2023
компиляция с c89 и c99 делает ли gcc 4.4.2 по умолчанию c99?
Я использую gcc 4.4.2 в Linux
Мне просто интересно, автоматически ли gcc по умолчанию компилируется с c99 в качестве последнего стандарта?
Как я могу указать, хочу ли я компилировать c89 или c99?
Большое спасибо за любой совет,
8689 просмотров
schedule
09.05.2023
Создать статически связанный двоичный файл, который использует getaddrinfo?
Я включил заголовок netdb.h , где включен getaddrinfo , но gcc выдает это предупреждение:
warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
gcc -m32...
39301 просмотров
schedule
06.02.2024
Объявление массива отрицательной длины
Что происходит в C, когда вы создаете массив отрицательной длины?
Например:
int n = -35;
int testArray[n];
for(int i = 0; i < 10; i++)
testArray[i]=i+1;
Этот код скомпилируется (и не выдаст никаких предупреждений с включенным...
12004 просмотров
schedule
28.06.2023
Является ли это недопустимым использованием указателей ограничения?
Предположим, у меня есть большой массив, в который я вычисляю индекс и передаю его второй функции. В качестве простого примера, что-то вроде:
void foo(float* array, float c, unsigned int n)
{
for (unsigned int i = 0; i < n; ++i)...
2100 просмотров
schedule
20.10.2022
Каково определение неполного типа и типа объекта в C?
Каково определение неполного типа и типа объекта в C? Кроме того, не могли бы вы привести несколько примеров каждого из них?
ANSI C99 упоминает обе категории типов в разных местах, хотя мне было трудно понять, что именно означает каждая из них...
4122 просмотров
schedule
15.11.2022
Следование указателям в многопоточной среде
Если у меня есть код, который выглядит примерно так:
typedef struct {
bool some_flag;
pthread_cond_t c;
pthread_mutex_t m;
} foo_t;
// I assume the mutex has already been locked, and will be unlocked
// some time after this function...
239 просмотров
schedule
10.05.2023
C99 не C-версия по умолчанию для GCC?
Почему GCC не компилирует C99 по умолчанию? Я имею в виду, почему необходимо добавлять флаг --std=c99 каждый раз, когда пишется код на C99?
5654 просмотров
schedule
01.10.2022
Включение VLA (массивов переменной длины) в MS Visual C ++?
Как я могу включить использование VLA, массивов переменной длины, как определено в C99, в MS Visual C ++ или это вообще невозможно?
Да, я знаю, что стандарт C ++ основан на C89 и что VLA недоступны в стандарте C89 и, следовательно, недоступны в C...
18884 просмотров
schedule
22.08.2022
Генерация объявления функции с использованием итерации макроса
Я пытаюсь сгенерировать объявление функции с помощью макроса
/* goal: generate int f(int a, float b) */
template<typename P>
struct ptype;
template<typename P>
struct ptype<void(P)> { typedef P type; };
#define NAMEe
#define...
5671 просмотров
schedule
18.02.2022
Гибкий элемент массива (c99) внутри структуры
Я использую этот код некоторое время, и он отлично работает, но у меня возникла головная боль при его реализации. Он использует гибкий элемент массива (FAM) aka Struct Hack. Теперь, когда C99 имеет возможность использовать массив переменной длины...
1355 просмотров
schedule
28.05.2022
Стандартная альтернатива трюку GCC ## __ VA_ARGS__?
Существует хорошо известный проблема с пустыми аргументами для макросов с переменным числом аргументов в C99.
пример:
#define FOO(...) printf(__VA_ARGS__)
#define BAR(fmt, ...) printf(fmt, __VA_ARGS__)
FOO("this works fine");...
80271 просмотров
schedule
18.06.2022
Сдвиг вправо ›› в C99
Возможный дубликат: Странное поведение оператора сдвига вправо
Привет
Почему оба числа из этой функции печатаются одинаково? Это не циклический сдвиг.
unsigned int i=0x89878685;
int main()
{
printf("0x%x\n", i);...
669 просмотров
schedule
03.01.2024
Доступ к массивам в указателе на структуру
У меня есть простая структура:
typedef struct {
void *things;
int sizeOfThings;
} Demo;
Things предназначен для хранения массива отдельных «вещей», таких как, возможно, строки или целые числа. Я создаю указатель на него:
Demo *...
3521 просмотров
schedule
16.10.2022
Одномерный доступ к многомерному массиву: это четко определенное поведение?
Я полагаю, мы все согласны с тем, что C считается идиоматичным для доступа к настоящему многомерному массиву путем разыменования указателя (возможно, смещения) на его первый элемент одномерным способом, например:
void clearBottomRightElement(int...
6603 просмотров
schedule
12.05.2023
C99 - почему ложь и истина определены как 0 и 1, а не как ((bool) 0) и ((bool) 1)?
Просто наткнулся на утверждение, которое не удалось, поскольку оно сравнивало false с типом возврата функции, поскольку сама функция вернула bool, а assert проверил не только значение, но и тип возвращаемого значения на соответствие ложному, чтобы...
6849 просмотров
schedule
29.06.2022