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

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

Как использовать extern для обмена переменными между исходными файлами?

Я знаю, что глобальные переменные в C иногда имеют ключевое слово extern. Что такое переменная extern? Что такое декларация? Какова его область действия? Это связано с обменом переменными в исходных файлах, но как это работает? Где я могу использов...
задан 16 сент. '09 в 17:08
19
ответов

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

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

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

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

Почему эти конструкции используют pre- и неопределенное поведение post-increment?

#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
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
31
ответ

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

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

Зачем использовать явно бессмысленные инструкции 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
16
ответов

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

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

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

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

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

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

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

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