"18.234.111.56 - 18.234.111.56"

Вопросы с тегом 'c'

C - это язык программирования общего назначения, используемый для системного программирования (ОС и встраиваемых), библиотек, игр и кроссплатформенности. Этот тег следует использовать с общими вопросами, касающимися языка C, как определено в стандарте ISO 9899 (последняя версия 9899: 2018, если не указано иное, а также для запросов, специфичных для версии, с c89, c99, c11 и т.д.). C отличается от C++, и его не следует объединять с тегом C++ в отсутствие рациональной причины.
5 отв.

Почему препроцессор C интерпретирует слово "linux" как константу "1"?

Почему препроцессор C в GCC интерпретирует слово linux (маленькие буквы) как константу 1? test.c: #include <stdio.h> int main(void) { int linux = 5; return 0; } Результат $ gcc -E test.c (остановка после этапа предварительно...
06 окт. '13 в 19:09
25 отв.

Как определить размер моего массива в C?

Как определить размер моего массива в C? То есть, количество элементов, которые может содержать массив?
01 сент. '08 в 9:49
19 отв.

Как инициализировать все элементы массива с одинаковым значением?

У меня есть большой массив в C (а не С++, если это имеет значение). Я хочу инициализировать все члены с одинаковым значением. Я мог бы поклясться, что когда-то знал простой способ сделать это. Я мог бы использовать memset() в моем случае, но не суще...
14 окт. '08 в 16:13
31 отв.

Единичное тестирование C Код

Я работал над встроенной системой этим летом, написанным на прямой C. Это был уже существующий проект, в котором я работал. Я довольно привык к написанию модульных тестов на Java с помощью JUnit, но был в недоумении, как лучший способ писать модульны...
15 сент. '08 в 22:12
15 отв.

Почему эти конструкции используют неопределенное поведение до и после приращения?

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; i = (i++); printf("%d\n", i); // 2 Should be 1, no ? volatile int u = 0; u = u++ + ++u; printf("%d\n", u); // 1 u = 1...
04 июня '09 в 12:17
23 отв.

Почему переменные не могут быть объявлены в инструкции switch?

Я всегда задавался этим вопросом - почему вы не можете объявлять переменные после метки case в инструкции switch? В С++ вы можете объявить переменные почти везде (и объявить их близкими к первому использованию, очевидно, хорошо), но следующее все рав...
18 сент. '08 в 16:11
26 отв.

В чем разница между определением и декларацией?

Значение обоих ускользает от меня.
11 сент. '09 в 15:27
11 отв.

Что такое строгое правило сглаживания?

Когда вы спрашиваете о общем поведении undefined в C, души более просвещены, чем я говорил о правиле строгого псевдонимов. О чем они говорят?
19 сент. '08 в 4:30
11 отв.

Зачем использовать явно бессмысленные инструкции do-while и if-else в макросах?

Во многих макросах C/С++ я вижу код макроса, завернутый в то, что кажется бессмысленным циклом do while. Вот примеры. #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else Я не вижу, что делает do while. Почему б...
30 сент. '08 в 20:36
12 отв.

определение typedef struct vs struct

Я новичок в программировании на С, но мне было интересно узнать, какая разница между использованием typedef при определении структуры или использованием typedef. Мне кажется, что нет никакой разницы, они достигают той же цели. struct myStruct{ i...
04 нояб. '09 в 20:21
18 отв.

Разница между malloc и calloc?

В чем разница между выполнением: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); или ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Когда полезно использовать calloc над malloc или наоборот?
08 окт. '09 в 18:04
48 отв.

Разделите число на 3 без использования операторов *,/, +, -,%

Как бы вы разделили число на 3 без использования *, /, +, -, %, операторов? Число может быть подписано или без знака.
27 июля '12 в 22:34
19 отв.

Может ли код, который действителен как в C, так и в С++, создает другое поведение при компиляции на каждом языке?

C и С++ имеют много отличий, и не все допустимые C-коды являются действительными С++-кодом. (Под "действительным" я подразумеваю стандартный код с определенным поведением, т.е. Не специфичный для реализации/ undefined/и т.д.) Есть ли какой-либо сце...
15 окт. '12 в 2:54
4 отв.

Как достичь теоретического максимума 4 FLOP за цикл?

Как достичь теоретической пиковой производительности 4 операций с плавающей запятой (двойной точности) за такт на современном процессоре Intel x86-64? Насколько я понимаю, это займет три цикла для SSE add и пять циклов для mul, чтобы закончить на б...
05 дек. '11 в 20:54
13 отв.

Использование булевых значений в C

C не имеет встроенных булевых типов. Какой лучший способ использовать их в C?
17 дек. '09 в 15:46