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

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

22
Обработка ошибок в коде C
Что вы считаете «наилучшей практикой», когда речь идет об обработке ошибок согласованным способом в C-библиотеке. Есть два способа, о которых я думал: Всегда возвращайте код ошибки. Типичная функция будет выглядеть так: MYAPI_ERROR getObjectSize(MYAPIHandle h, int* returnedSize); Всегда предоставлять подход указатель ошибки: int getObjectSize(MYAPIHandle h, MYAPI_ERROR* returnedError); При использовании первого подхода …
152 c  error-handling 


7
Константа до или константа после?
Для начала вы, вероятно, знаете, что с constего помощью можно сделать либо данные объекта, либо указатель неизменяемыми, либо и то, и другое. const Object* obj; // can't change data Object* const obj; // can't change pointer const Object* const obj; // can't change data or pointer Однако вы также можете …
152 c++  c  syntax  const 

8
Что такое __stdcall?
Я изучаю программирование на Win32, и его WinMainпрототип выглядит так: int WINAPI WinMain ( HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show ) Я был смущен относительно того, для чего был этот WINAPIидентификатор, и нашел: #define WINAPI __stdcall Что это делает? Я смущен тем, что что-то вообще есть после типа …

12
Бесплатный инструмент для проверки исходного кода C / C ++ на соответствие стандартам кодирования? [закрыто]
Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека. Закрыто 6 лет назад . Улучшить этот вопрос Выглядит довольно просто найти такой инструмент для Java ( Checkstyle , JCSC ), …
151 c++  c  coding-style 


4
В CMake, как я могу проверить, является ли компилятор Clang?
У нас есть набор межплатформенных сценариев сборки CMake , и мы поддерживаем сборку с помощью Visual C ++ и GCC . Мы пробуем Clang , но я не могу понять, как проверить, является ли компилятор Clang с нашим сценарием CMake. Что я должен проверить, чтобы увидеть, является ли компилятор Clang …
151 c++  c  cmake  clang 

10
Стандартная альтернатива трюку GCC ## __ VA_ARGS__?
Существует известная проблема с пустыми аргументами для вариационных макросов в C99. пример: #define FOO(...) printf(__VA_ARGS__) #define BAR(fmt, ...) printf(fmt, __VA_ARGS__) FOO("this works fine"); BAR("this breaks!"); Использование BAR()вышеупомянутого действительно неверно в соответствии со стандартом C99, так как оно расширится до: printf("this breaks!",); Обратите внимание на запятую - не работает. Некоторые компиляторы …


4
Функции Call Go от C
Я пытаюсь создать статический объект, написанный на Go, для взаимодействия с программой на C (скажем, модулем ядра или чем-то еще). Я нашел документацию по вызову функций C из Go, но я не нашел много о том, как пойти другим путем. Я обнаружил, что это возможно, но сложно. Вот что я …

4
Почему этот пожиратель памяти действительно не ест память?
Я хочу создать программу, которая будет имитировать ситуацию нехватки памяти (OOM) на сервере Unix. Я создал этот супер-простой едок памяти: #include <stdio.h> #include <stdlib.h> unsigned long long memory_to_eat = 1024 * 50000; size_t eaten_memory = 0; void *memory = NULL; int eat_kilobyte() { memory = realloc(memory, (eaten_memory * 1024) + …

5
Как заставить clang компилироваться в llvm IR
Я хочу, чтобы clang компилировал мой C/C++код в LLVMбайт-код, а не в двоичный исполняемый файл. Как я могу этого достичь? И если я получу LLVMбайт-код, как я могу взять его для дальнейшей компиляции в двоичный исполняемый файл. По сути, я хочу добавить свой собственный код в LLVMбайт-код перед компиляцией в …
150 c  llvm  clang 

12
Почему x [0]! = X [0] [0]! = X [0] [0] [0]?
Я немного изучаю C ++ и борюсь с указателями. Я понимаю, что я могу иметь 3 уровня указателей, объявив: int *(*x)[5]; так что *xэто указатель на массив из 5 элементов, на которые есть указатели int. Кроме того, я знаю , что x[0] = *(x+0);, x[1] = *(x+1)и так далее .... …
149 c++  c  arrays  pointers 

17
Какой смысл в константных указателях?
Я не говорю об указателях на константные значения, а о самих константных указателях. Я изучаю C и C ++ за пределами самых базовых вещей, и до сегодняшнего дня я понял, что указатели передаются по значению функциям, что имеет смысл. Это означает, что внутри функции я могу заставить скопированный указатель указывать …
149 c++  c  pointers  const 

3
Записать в .txt файл?
Как я могу написать небольшой кусочек текста в .txtфайл? Я гуглю уже более 3-4 часов, но не могу понять, как это сделать. fwrite(); Есть так много аргументов, и я не знаю, как его использовать. Какую простую функцию использовать, когда вы хотите записать в .txtфайл только имя и несколько цифр ? …
149 c  linux 

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