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

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

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

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

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

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

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

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

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

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

C: В чем разница между ++i и i++?

В C, в чем разница между использованием ++i и i++ и который должен использоваться в блоке инкрементации цикла for?
24 авг. '08 в 5:19
31

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

Я работал над встроенной системой этим летом, написанным на прямой C. Это был уже существующий проект, в котором я работал. Я довольно привык к написанию модульных тестов на Java с помощью JUnit, но был в недоумении, как лучший способ писать модульны...
15 сент. '08 в 19: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 в 9:17
11

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

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

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

В чем разница между выполнением: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); или ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Когда полезно использовать calloc над malloc или наоборот?
08 окт. '09 в 15:04
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 в 17:36
48

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

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

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

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

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

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

Что должно main() возвращать в C и С++?

Каков правильный (наиболее эффективный) способ определения функции main() в C и С++ - int main() или void main() - и почему? Если int main(), то return 1 или return 0? Существует множество дубликатов этого вопроса, в том числе: Каковы действитель...
15 окт. '08 в 12:13