Запитання з тегом «c»

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

8
Що таке __stdcall?
Я дізнаюся про програмування Win32, і WinMainпрототип виглядає так: int WINAPI WinMain ( HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show ) Мене збентежило те, для чого потрібен цей WINAPIідентифікатор: #define WINAPI __stdcall Що це робить? Мене бентежить те, що взагалі щось має після повернення. Для чого __stdcall? Що це …

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

4
Як у CMake я можу перевірити, чи є компілятором Clang?
У нас є набір сценаріїв побудови міжплатформних CMake , і ми підтримуємо побудову за допомогою Visual C ++ та GCC . Ми пробуємо Clang , але я не можу зрозуміти, як перевірити, чи є компілятор Clang за допомогою нашого сценарію CMake. Що слід перевірити, чи є компілятор Clang чи ні? …
151 c++  c  cmake  clang 

10
Стандартна альтернатива трюку ## __ VA_ARGS__ GCC?
Існує добре відома проблема з порожніми аргументами для макросів в змінному числі 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
Функції виклику 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
Як змусити компілювати кланг у IR IR
Я хочу, щоб Кланг компілював свій C/C++код у LLVMбайт-код, а не у двійковий виконуваний файл. Як я можу цього досягти? І якщо я отримаю LLVMбайт-код, як я можу взяти його для подальшого компіляції до бінарного виконуваного файлу. В основному я хочу додати до власного коду деякий власний код, LLVMперш ніж …
150 c  llvm  clang 

12
Чому x [0]! = X [0] [0]! = X [0] [0] [0]?
Я вивчаю трохи С ++ і борюся з покажчиками. Я розумію, що я можу мати 3 рівня покажчиків, оголосивши: int *(*x)[5]; так що *xце вказівник на масив з 5 елементів, на які вказують int. Також я це знаю x[0] = *(x+0);, x[1] = *(x+1)і так далі ... Отже, з огляду …
149 c++  c  arrays  pointers 

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

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

8
Перетворити програму Python у код C / C ++? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб він зосередив увагу на одній проблемі лише редагуючи цю публікацію . Закрито 3 роки тому . Удосконаліть це питання чи можливо перетворити програму Python на C / C ++? Мені …
149 c++  python  c  code-generation 

2
Як працює код C, який друкує від 1 до 1000 без циклів чи умовних операторів?
Я знайшов Cкод, який друкує від 1 до 1000 без циклів або умовних умов : Але я не розумію, як це працює. Чи може хтось пройти код і пояснити кожен рядок? #include <stdio.h> #include <stdlib.h> void main(int j) { printf("%d\n", j); (&main + (&exit - &main)*(j/1000))(j+1); }

5
Чому цей код вразливий до атак переповнення буфера?
int func(char* str) { char buffer[100]; unsigned short len = strlen(str); if(len >= 100) { return (-1); } strncpy(buffer,str,strlen(str)); return 0; } Цей код вразливий до атаки переповнення буфера, і я намагаюся з'ясувати, чому. Я думаю, що це стосується того, lenщоб оголосити shortзамість цього int, але я не дуже впевнений. …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.