Вопросы по теме 'c11'
Разрешает ли C11 объявления переменных в любом месте функции?
Позволяет ли стандарт C11 (заметьте, я не имею в виду C++11) объявлять переменные в любом месте функции?
Код ниже недействителен в ANSI C (C89, C90):
int main()
{
printf("Hello world!");
int a = 5; /* Error: all variables should be declared...
1987 просмотров
schedule
11.01.2024
Использование _Noreturn в C11
Возможный дубликат: Что такое точка атрибута Noreturn?
C11 представил атрибут _Noreturn , чтобы указать, что функция никогда не возвращает значение.
Помимо ценности документации в исходном коде, какие еще преимущества дает этот...
7560 просмотров
schedule
17.07.2023
Создание вложенных структур без -fms-расширений?
У меня есть структура с некоторыми свойствами:
struct a {
char* id;
int a;
int b;
int c;
}
У меня также есть структура с теми же свойствами, но без id .
struct b {
int a;
int b;
int c;
}
Я знаю, что C11...
372 просмотров
schedule
12.04.2023
_Alignas для членов структуры с помощью clang и C11
У меня возникли проблемы с -Wpadded с использованием C11 и структур.
Я уже прочитал Выравнивание элементов структуры с помощью _Alignas и просмотрел документы clang и увидел, что он теперь поддерживается.
Кроме того, я использую очень новую...
3604 просмотров
schedule
10.04.2023
Гарантированно ли (uint64_t)-1 даст 0xffffffffffffffff?
Я знаю, что в стандарте C четко определено, что (unsigned)-1 должно давать 2^n-1, т.е. е. целое число без знака со всеми установленными битами. То же самое касается (uint64_t)-1ll . Однако я не могу найти что-то в стандарте C11, определяющее,...
7185 просмотров
schedule
25.11.2022
C11 _Generic: как работать со строковыми литералами?
Используя функцию _Generic в C11, как вы справляетесь со строковыми литералами?
Например:
#include <stdio.h>
#define foo(x) _Generic((x), char *: puts(x))
int main()
{
foo("Hello, world!");
return 0;
}
дает эту ошибку на...
3290 просмотров
schedule
18.05.2022
Существуют ли компиляторы C99, где с настройками по умолчанию -1››1 != -1?
Многие люди часто отмечают при обсуждении оператора сдвига вправо, что в стандарте C явно указано, что эффект сдвига вправо отрицательного числа определяется реализацией. Я могу понять историческую основу для этого утверждения, учитывая, что...
299 просмотров
schedule
20.06.2023
Разница между scanf и scanf_s в C
Хотя моя программа выдает требуемый результат. Есть много предупреждений о том, что scanf() не следует использовать, и вместо этого попробуйте использовать scanf_s() .
Возможная причина этого предупреждения??
Это происходит со всеми...
1320 просмотров
schedule
10.07.2023
Проверка времени компиляции полиморфных типов в C?
Полиморфные структуры довольно распространены в C, но часто включают явное приведение типов, позволяющее случайно преобразовать несовместимые структуры.
struct ID {
char name[32];
};
struct IntID {
struct ID id_base;
int value;
}...
122 просмотров
schedule
20.05.2022
Использование макроса в определении анонимной структуры C11
Типичный способ C99 для расширения структуры выглядит примерно так:
struct Base {
int x;
/* ... */
};
struct Derived {
struct Base base_part;
int y;
/* ... */
};
Затем мы можем преобразовать экземпляр struct Derived * в...
250 просмотров
schedule
02.01.2024
C: Есть ли что-то, что называется «префиксным выражением»?
ISO/IEC 9899:2011 (Американский национальный стандарт для C11) говорит о постфиксных выражениях, но ничего не называется префиксным выражением. Почему так?
82 просмотров
schedule
18.01.2023
scanf и спецификатор преобразования p
В спецификации C11 сказано, что тип аргумента %p должен быть void ** в случае функции scanf() , но я не могу понять, как ввести адрес и сохранить его в void ** . На самом деле, если я попытаюсь сделать:
void **p;
scanf("%p", p);
Я...
2185 просмотров
schedule
21.04.2023
Как перейти с fopen на fopen_s
Visual Studio жалуется на fopen. Я не могу найти правильный синтаксис для его изменения. У меня есть:
FILE *filepoint = (fopen(fileName, "r"));
to
FILE *filepoint = (fopen_s(&,fileName, "r"));
Какова остальная часть первого...
73767 просмотров
schedule
17.11.2022
Как скомпилировать стандартную библиотеку c11 на OS X с помощью clang?
Эй, я пытаюсь скомпилировать код c, который использует функции из стандартной библиотеки c11 в OS X с clang.
Опция компилятора -std=c11 позволяет мне использовать возможности языка c11. Но когда я использую новые функции, такие как...
1895 просмотров
schedule
13.06.2022
Как использовать новые типы char16_t и u8?
c11 улучшить поддержку кодирования со встроенными типами для utf-8, utf-16 и utf-32.
Однако мне совершенно не удалось найти ссылку на их использование в стандартных функциях. Все, что я нашел, это как использовать их в С++ 11, а не в C.
Итак,...
1762 просмотров
schedule
08.08.2022
Существуют ли какие-либо реализации, которые поддерживают отрицательный нуль или резервируют его как представление ловушки?
В большинстве современных реализаций целочисленное значение со знаком, которое имеет битовый шаблон 1 для знакового бита и все 0 для битов значения, имеет тенденцию представлять наименьшее возможное значение для этого целочисленного типа со знаком....
157 просмотров
schedule
03.03.2024
почему эта программа отлично компилируется в C11, но не в C99?
Рассмотрим следующую программу: (см. живую демонстрацию здесь ).
#include <stdio.h>
struct Test
{
int a;
};
typedef struct Test t;
typedef struct Test t;
int main()
{
t T={9};
printf("%d",T.a);
}
Программа отлично...
169 просмотров
schedule
09.07.2022
Использование расширений GCC __sync для переносимой библиотеки C
Я разрабатываю библиотеку C для OS X ( 10.10.x , которая поставляется с GCC 4.2.x ). Эта библиотека должна быть максимально переносимой и не относится к OS X .
Я бы хотел, чтобы у конечных пользователей было меньше головной боли при сборке из...
151 просмотров
schedule
21.07.2022
Как объявить идентификатор с внутренней связью в области блока без предварительного объявления этого идентификатора с видимой некоторой связью?
Учти это:
#include <stdio.h>
static int b;
int main()
{
{
int b;
{
extern int b;
b = 2;
}
}
printf("%d", b);
}
Здесь по определению идентификатор b, которому присвоено...
97 просмотров
schedule
29.03.2024
Соглашение о статусе выхода в программах Unix
Рассмотрим команду Unix foo , которая считывает файл (или stdin ) построчно, где каждая строка должна соответствовать определенному формату, например, формату /etc/passwd .
Если какая-либо из строк неверна (но не все), должен ли статус...
113 просмотров
schedule
30.05.2023