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

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

8
malloc для структуры и указателя в C
Предположим, я хочу определить структуру, представляющую длину вектора и его значения как: struct Vector{ double* x; int n; }; Теперь предположим, что я хочу определить вектор y и выделить для него память. struct Vector *y = (struct Vector*)malloc(sizeof(struct Vector)); Мой поиск в Интернете показывает, что я должен выделить память для …

11
Вычитание / добавление насыщения для беззнаковых байтов
Представьте, что у меня есть два байта без знака bи x. Мне нужно рассчитать bsubкак b - xи baddкак b + x. Однако я не хочу, чтобы во время этих операций происходило переполнение / переполнение. Например (псевдокод): b = 3; x = 5; bsub = b - x; // bsub …

11
Можно ли * не * использовать free () для выделенной памяти?
Я изучаю компьютерную инженерию, и у меня есть курсы электроники. Я слышал от двух моих профессоров (из этих курсов) , что можно избежать с помощью free()функции (после того, как malloc(), calloc()и т.д.) , так как пространства памяти , выделенные , вероятно , не будет использоваться снова , чтобы выделить другую …


15
Рекомендуемые параметры предупреждений gcc для C [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить с помощью фактов и цитат, отредактировав этот пост . Закрыт 6 лет назад . Уточните этот вопрос Какие еще предупреждения, кроме -Wall, люди …
83 c  gcc  compiler-errors 

5
Откуда взялось слово «прагма»?
Итак, я знаю, что такое прагма и для чего она используется, но каково значение самого слова? Я много раз использовал его в коде, но я никогда не знал, что это слово на самом деле означает или означает.
83 c++  c  terminology  pragma 

9
Переход с C ++ на C
После нескольких лет кодирования на C ++ мне недавно предложили работу кодирования на C во встроенной области. Отложив в сторону вопрос о том, правильно или неправильно отклонять C ++ во встроенном поле, в C ++ есть некоторые особенности / идиомы, которые я бы очень упустил. Просто назвать несколько: Общие, типобезопасные …
83 c++  c 

1
Производительность цикла кода C [продолжение]
Этот вопрос продолжает мой вопрос здесь (по совету Mystical): Производительность цикла кода C Продолжая свой вопрос, когда я использую упакованные инструкции вместо скалярных инструкций, код, использующий встроенные функции, будет выглядеть очень похоже: for(int i=0; i<size; i+=16) { y1 = _mm_load_ps(output[i]); … y4 = _mm_load_ps(output[i+12]); for(k=0; k<ksize; k++){ for(l=0; l<ksize; l++){ …

7
Как передать переменное количество аргументов в printf / sprintf
У меня есть класс, содержащий функцию «ошибки», которая форматирует некоторый текст. Я хочу принять переменное количество аргументов, а затем отформатировать их с помощью printf. Пример: class MyClass { public: void Error(const char* format, ...); }; Метод Error должен принимать параметры, вызывать printf / sprintf для его форматирования, а затем что-то …


8
Программирование на C: как программировать для Unicode?
Какие предварительные условия необходимы для выполнения строгого программирования Unicode? Означает ли это, что мой код charнигде не должен использовать типы и что нужно использовать функции, которые могут иметь дело с wint_tи wchar_t? И какую роль в этом сценарии играют многобайтовые последовательности символов?


6
#ifdef внутри #define
Я пытаюсь написать что-то вроде этого: #define COV_ON(x) \ #ifdef COVERAGE_TOOL \ _Pragma (COVERAGE #x) #endif Есть ли способ дать COV_ONтакое определение ? Я знаю, что то, что я сделал выше, неправильно, так как я не могу использовать #ifdef#define. ( #не разрешенный символ в #define). Так есть ли решение?
83 c  c-preprocessor 

3
Зачем приводить возвращаемое значение free к void?
Я читаю книгу ( Программирование с помощью POSIX Threads by Butenhof, 1997), в которой используется C, и наткнулся на следующую строку: (void)free(data); Здесь dataпросто указатель на выделенную структуру, data = malloc(sizeof(my_struct_t)); Почему результат freeбудет приведен к void? Из моего понимания C это, кажется, не имеет смысла по двум причинам: Бесплатная …
82 c  casting  free  void  legacy-code 

10
Безопасно ли переименовывать argc и argv в основной функции?
Многие программы используют стандартные имена для ряда аргументов и массивов строк. Прототип основных функций выглядит следующим образом : int main(int argc, char *argv[]);. Но сломаю ли я что-нибудь, если выберу для этих переменных собственные имена? Например int main(int n_of_args, char *args[]); В контексте компилятора все нормально. Эти переменные являются локальными …
82 c++  c  main 

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