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

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

2
Что означает && в void * p = && abc;
Я наткнулся на кусок кода void *p = &&abc;. Какое &&здесь значение? Я знаю о ссылках на rvalue, но думаю, что &&в этом контексте они используются по-другому. Что &&указывает в void *p = &&abc;?
102 c++  c  gcc  operators 

10
«F» после числа
Что означает fпосле цифр? Это от C или Objective-C? Есть ли разница в том, чтобы не добавлять это к постоянному числу? CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f); Вы можете объяснить, почему я просто не написал: CGRect frame = CGRectMake(0, 0, 320, 50);

6
snprintf и Visual Studio 2010
Мне очень жаль, что я застрял в использовании VS 2010 для проекта и заметил, что следующий код все еще не создается с использованием компилятора, не соответствующего стандартам: #include <stdio.h> #include <stdlib.h> int main (void) { char buffer[512]; snprintf(buffer, sizeof(buffer), "SomeString"); return 0; } (не выполняется компиляция с ошибкой: C3861: 'snprintf': …

11
Почему printf с одним аргументом (без спецификаторов преобразования) устарел?
В книге, которую я читаю, написано, что printfиспользование одного аргумента (без спецификаторов преобразования) не рекомендуется. Рекомендуется заменить printf("Hello World!"); с участием puts("Hello World!"); или printf("%s", "Hello World!"); Может кто подскажет, почему printf("Hello World!");не так? В книге написано, что в нем есть уязвимости. Что это за уязвимости?

7
Путаница с инициализацией массива в C
На языке C, если инициализировать массив следующим образом: int a[5] = {1,2}; тогда все элементы массива, которые не инициализированы явно, будут неявно инициализированы нулями. Но, если я инициализирую массив следующим образом: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); вывод: 1 0 1 0 0 Я не …

14
Какой лучший способ сделать обратный цикл в C / C # / C ++?
Мне нужно вернуться назад по массиву, поэтому у меня есть такой код: for (int i = myArray.Length - 1; i >= 0; i--) { // Do something myArray[i] = 42; } Есть ли лучший способ сделать это? Обновление: я надеялся, что, возможно, в C # есть какой-то встроенный механизм для …
102 c#  c++  c 

20
C / C ++ проверяет, установлен ли один бит, т.е. переменная int
int temp = 0x5E; // in binary 0b1011110. Есть ли способ проверить, равен ли бит 3 в temp 1 или 0 без сдвига бит и маскирования. Просто хочу знать, есть ли для этого какая-то встроенная функция, или я вынужден написать ее сам.
102 c++  c  bit-manipulation 

7
Сбросить массив C int до нуля: самый быстрый способ?
Предполагая, что у нас есть a T myarray[100]с T = int, unsigned int, long long int или unsigned long long int, каков самый быстрый способ сбросить все его содержимое до нуля (не только для инициализации, но и для сброса содержимого несколько раз в моей программе) ? Может с memset? Тот …
102 c++  c  arrays  memset 

4
Сколько существует уровней оптимизации GCC?
Сколько существует уровней оптимизации GCC ? Я пробовал gcc -O1, gcc -O2, gcc -O3 и gcc -O4 Если я использую очень большое число, это не сработает. Однако я пробовал gcc -O100 и он скомпилирован. Сколько существует уровней оптимизации?

8
Является ли «argv [0] = имя исполняемого файла» принятым стандартом или просто общепринятым соглашением?
При передаче аргумента main()в приложение C или C ++ argv[0]всегда будет имя исполняемого файла? Или это просто обычное соглашение и не гарантируется, что оно будет верным в 100% случаев?
102 c++  c  standards  argv 


3
Как можно увидеть содержимое стека с помощью GDB?
Я новичок в GDB, поэтому у меня есть несколько вопросов: Как я могу посмотреть содержимое стека? Пример: чтобы увидеть содержимое реестра, я набираю info registers. Для стека что это должно быть? Как я могу увидеть содержимое $0x4(%esp)? Когда я печатаю print /d $0x4(%esp), GDB выдает ошибку. Платформа: Linux и GDB
102 c  assembly  gdb 

24
Почему вы не используете C для своих веб-приложений?
Сегодня утром я смотрел на несколько разных веб-серверов, когда наткнулся на G-WAN . Насколько я понимаю, это веб-сервер, написанный на C, и вы должны использовать его, написав свои веб-сайты / веб-приложения на C. Одно очевидное преимущество - это скорость, как предлагает сайт G-WAN. Однако на форумах создатель G-WAN спросил, почему …
101 php  c  web-applications 

16
Функция таймера для отображения времени в наносекундах с использованием C ++
Я хочу рассчитать время, необходимое API для возврата значения. Время, необходимое для такого действия, составляет наносекунды. Поскольку API - это класс / функция C ++, я использую timer.h, чтобы вычислить то же самое: #include <ctime> #include <cstdio> using namespace std; int main(int argc, char** argv) { clock_t start; double diff; …
101 c++  c  timer 

4
спецификаторы формата printf для uint32_t и size_t
У меня есть следующие size_t i = 0; uint32_t k = 0; printf("i [ %lu ] k [ %u ]\n", i, k); При компиляции я получаю следующее предупреждение: format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’ Когда я запустил это с помощью шины, я получил следующее: …
101 c  printf 

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