Вопросы с тегом «c»

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

7
В чем разница между vmalloc и kmalloc?
Я погуглил и нашел, что большинство людей выступают за использование kmalloc, поскольку вы гарантированно получите непрерывные физические блоки памяти. Однако также кажется, что он kmallocможет потерпеть неудачу, если не удается найти непрерывный физический блок, который вам нужен. Каковы преимущества непрерывного блока памяти? В частности, зачем мне иметь непрерывный физический блок …

4
Левая панель printf с пробелами
Как я могу заполнить строку пробелами слева при использовании printf? Например, я хочу напечатать «Hello» с 40 пробелами перед ним. Кроме того, строка, которую я хочу напечатать, состоит из нескольких строк. Нужно ли мне печатать каждую строку отдельно? РЕДАКТИРОВАТЬ: Чтобы быть ясным, я хочу, чтобы перед каждой строкой было напечатано …
114 c  formatting  printf 


5
Поврежденный стековый кадр GDB - как отлаживать?
У меня следующая трассировка стека. Можно ли из этого разобрать что-нибудь полезное для отладки? Program received signal SIGSEGV, Segmentation fault. 0x00000002 in ?? () (gdb) bt #0 0x00000002 in ?? () #1 0x00000001 in ?? () #2 0xbffff284 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt …
113 c  recursion  gdb 

7
Заголовок C99 stdint.h и MS Visual Studio
К моему удивлению, я только что обнаружил, что C99 stdint.h отсутствует в MS Visual Studio 2003 и выше. Я уверен, что у них есть свои причины, но кто-нибудь знает, где я могу скачать копию? Без этого заголовка у меня нет определений для полезных типов, таких как uint32_t и т. Д.
113 c++  c  visual-studio  c99 

9
Это int main; действующая программа на C / C ++?
Я спрашиваю, потому что мой компилятор, кажется, так думает, хотя я этого не делаю. echo 'int main;' | cc -x c - -Wall echo 'int main;' | c++ -x c++ - -Wall Clang не выдает никаких предупреждений или ошибок при этом, а gcc выдает только кроткое предупреждение:, 'main' is usually …
113 c++  c  function  main  entry-point 

10
Повреждает ли память (ptr), где ptr - NULL?
Теоретически могу сказать, что free(ptr); free(ptr); - это повреждение памяти, поскольку мы освобождаем уже освобожденную память. А вдруг free(ptr); ptr=NULL; free(ptr); Поскольку ОС будет вести себя неопределенным образом, я не могу получить фактический теоретический анализ происходящего. Что бы я ни делал, это повреждение памяти или нет? Действителен ли освобождение нулевого …

5
Где в Linux определяется PATH_MAX?
Какой файл заголовка следует вызвать, #includeчтобы иметь возможность использовать PATH_MAX в качестве int для определения размера строки? Я хочу иметь возможность заявить: char *current_path[PATH_MAX]; Но когда я это сделаю, мой компилятор (Clang / LLVM в Linux) выдает следующую ошибку: recursive_find6.c:29:20: error: use of undeclared identifier 'PATH_MAX' char *current_path[PATH_MAX]; ^ Я …
113 c  linux  gcc  include  clang 


9
Зачем приводить неиспользуемые возвращаемые значения к void?
int fn(); void whatever() { (void) fn(); } Есть ли причина приводить неиспользованное возвращаемое значение к void, или я прав, думая, что это пустая трата времени? Следовать за: Что ж, это кажется довольно всеобъемлющим. Я полагаю, это лучше, чем комментировать неиспользованное возвращаемое значение, поскольку самодокументирующий код лучше, чем комментарии. Лично …
112 c++  c  void 

3
Почему этот код имеет segfault в 64-битной архитектуре, но нормально работает в 32-битной?
Я наткнулся на следующую загадку C: В: Почему следующая программа имеет segfault на IA-64, но нормально работает на IA-32? int main() { int* p; p = (int*)malloc(sizeof(int)); *p = 10; return 0; } Я знаю, что размер intна 64-битной машине может отличаться от размера указателя ( intможет быть 32 бита, …

19
#ifdef vs #if - что лучше / безопаснее как метод включения / отключения компиляции определенных участков кода?
Это может быть вопросом стиля, но в нашей команде разработчиков есть некоторые разногласия, и мне было интересно, есть ли у кого-нибудь еще какие-нибудь идеи по этому поводу ... По сути, у нас есть некоторые отладочные операторы печати, которые мы отключаем во время нормальной разработки. Лично я предпочитаю делать следующее: //---- …



3
Какой предопределенный макрос я могу использовать для обнаружения лязга?
Я пытаюсь определить компилятор, использованный для компиляции моего исходного кода. Я легко могу найти предопределенные макросы для проверки MSVC или GCC ( например, см. Http://predef.sourceforge.net/ ), но я не могу найти ни одного макроса для проверки на наличие clang. Кто-нибудь знает, определяет ли clang макрос, например __CLANG__, чтобы узнать, что …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.