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

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

10
Цель-C: BOOL против bool
Я видел "новый тип" BOOL( YES,NO ). Я читал, что этот тип почти как символ. Для тестирования я сделал: NSLog(@"Size of BOOL %d", sizeof(BOOL)); NSLog(@"Size of bool %d", sizeof(bool)); Приятно видеть, что оба журнала отображают «1» (иногда в C ++ bool имеет тип int, а его размер равен 4) Так …
192 c  objective-c  types  boolean 

3
printf () форматирование для hex
Это скорее любопытный запрос, чем важный вопрос, но почему при печати шестнадцатеричного числа в виде 8-значного числа с начальными нулями этот %#08XNot не отображает тот же результат, что и 0x%08X? Когда я пытаюсь использовать первый, 08флаг форматирования удаляется, и он не работает только с 8. Снова мне было просто любопытно.
192 c  printf  hex 

19
Могу ли я использовать двоичный литерал в C или C ++?
Мне нужно работать с двоичным числом. Я пытался написать: const x = 00010000; Но это не сработало. Я знаю, что могу использовать шестнадцатеричное число с тем же значением, что 00010000и у меня, но я хочу знать, есть ли тип в C ++ для двоичных чисел, и если нет, есть ли …
191 c++  c  binary 


12
Нахождение пути текущего исполняемого файла без / proc / self / exe
Мне кажется, что в Linux легко с / proc / self / exe. Но я хотел бы знать, есть ли удобный способ найти каталог текущего приложения в C / C ++ с кросс-платформенными интерфейсами. Я видел, как некоторые проекты возились с argv [0], но это не совсем надежно. Если бы …
190 c++  c  linux  macos  executable 

25
Округление до следующей степени 2
Я хочу написать функцию, которая возвращает ближайшую следующую степень 2 числа. Например, если мой ввод 789, вывод должен быть 1024. Есть ли способ достичь этого без использования циклов, а только с помощью некоторых побитовых операторов?

6
Почему адрес массива равен его значению в C?
В следующем фрагменте кода значения указателя и адреса указателя отличаются, как и ожидалось. Но значения массива и адреса не имеют! Как это может быть? Вывод my_array = 0022FF00 &my_array = 0022FF00 pointer_to_array = 0022FF00 &pointer_to_array = 0022FEFC #include <stdio.h> int main() { char my_array[100] = "some cool string"; printf("my_array = …
189 c  pointers  arrays 

12
Переслать вызов переменной функции в C
В C возможно ли переадресация вызова функции с переменными числами? Как в, int my_printf(char *fmt, ...) { fprintf(stderr, "Calling printf with fmt %s", fmt); return SOMEHOW_INVOKE_LIBC_PRINTF; } Пересылка вызова описанным выше способом, очевидно, не является строго необходимой в этом случае (поскольку вы можете регистрировать вызовы другими способами или использовать vfprintf), …
189 c  variadic 

13
С не так сложно: void (* (* f []) ()) ()
Я только сегодня увидел фотографию и думаю, что буду благодарен за объяснения. Итак, вот картинка: Я нашел это смущающим и задавался вопросом, практичны ли когда-либо такие коды. Я гуглил картинку и нашел другую картинку в этой записи Reddit, и вот эта картинка: Так что это «чтение по спирали» является чем-то …

5
Ошибка «элемент инициализатора не является константой» при попытке инициализировать переменную с помощью const
Я получаю сообщение об ошибке в строке 6 (инициализация my_foo для foo_init) следующей программы, и я не уверен, что понимаю почему. typedef struct foo_t { int a, b, c; } foo_t; const foo_t foo_init = { 1, 2, 3 }; foo_t my_foo = foo_init; int main() { return 0; } …
187 c  initialization 

13
Почему звездочка перед именем переменной, а не после типа?
Почему большинство программистов на C называют переменные так: int *myVariable; а не так: int* myVariable; Оба действительны. Мне кажется, что звездочка является частью типа, а не частью имени переменной. Кто-нибудь может объяснить эту логику?

3
fork () веток больше, чем ожидалось?
Рассмотрим следующий фрагмент кода: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Эта программа выводит 8 точек. Как это может быть возможно? Не должно ли быть 6 точек вместо этого?
186 c++  c  fork 

9
Где gcc ищет заголовочные файлы C и C ++?
В системе Unix, где gcc ищет заголовочные файлы? Сегодня утром я потратил немного времени на поиск некоторых системных заголовочных файлов, так что я подумал, что это будет хорошей информацией для вас.
186 c  gcc  header 

1
Как GCC и G ++ загружаются?
Это беспокоило меня некоторое время. Как GCC и G ++ компилируются сами? Я предполагаю, что каждая ревизия компилируется с ранее созданной ревизией. Это правда? И если это так, значит ли это, что самые старые версии g ++ и GCC были написаны на ассемблере?

14
Когда использовать встроенную функцию, а когда нет?
Я знаю, что inline - это подсказка или запрос компилятору, и он используется, чтобы избежать накладных расходов на вызовы функций. Итак, на каком основании можно определить, является ли функция кандидатом на встраивание или нет? В каком случае следует избегать встраивания?
185 c++  c  inline 

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