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

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

13
Помилка запуску. Двійковий файл не знайдено. CDT на Eclipse Helios
Я використовую Eclipse Helios на Ubuntu 10.04 і намагаюся встановити на ньому плагін CDT. Я завантажую його звідси тут . А потім я переходжу до Встановлення нового програмного забезпечення та вибираю zip-файл ( я його не витягую, просто вибираю zip-файл ). І це нормально, він встановлюється, все працює нормально, він …


7
Чи можна сказати провіснику гілок, наскільки ймовірно, що він стежить за гілкою?
Тільки для того, щоб це було зрозуміло, я не маю наміру до будь-якої переносимості тут, тому будь-які рішення, які прив’яжуть мене до певного вікна, чудові. В основному, у мене є твердження if, яке 99% часу оцінить як істинне, і я намагаюся вибити кожен останній годинник продуктивності, чи можу я виконати …

13
Як ввести модульне тестування у велику застарілу (C / C ++) кодову базу?
У нас є великий мультиплатформенний додаток, написаний мовою C. (з невеликою, але зростаючою кількістю C ++). Він розвивався протягом багатьох років із багатьма функціями, яких ви очікували б у великому додатку C / C ++: #ifdef пекло Великі файли, через які важко виділити перевіряється код Функції, які є занадто складними, …
74 c++  c  unit-testing  unix  legacy 

5
Що таке портативний метод, щоб знайти максимальне значення size_t?
Я хотів би знати максимальне значення size_t в системі, в якій працює моя програма. Моїм першим інстинктом було використовувати мінус 1, ось так: size_t max_size = (size_t)-1; Але я здогадуюсь, що є кращий спосіб, або десь визначена константа.
74 c  size-t 


18
Перевірка, виділено вказівнику пам’ять чи ні
Чи можемо ми перевірити, чи вказівник, переданий функції, виділений пам'яттю чи ні в C? Я написав власну функцію в C, яка приймає покажчик символів - buf [вказівник на буфер] та size - buf_siz [розмір буфера]. Насправді перед викликом цієї функції користувач повинен створити буфер і виділити йому пам'ять buf_siz. Оскільки …
74 c  pointers 

5
strcpy проти strdup
Я прочитав, що strcpyпризначено для копіювання рядка, і strdupповертає покажчик на новий рядок, щоб дублювати рядок. Не могли б ви пояснити, які кейси ви віддаєте перевагу використовувати strcpyі які кейси ви віддаєте перевагу використовувати strdup?
74 c  strcpy  strdup 

11
типи даних фіксованої довжини в C / C ++
Я чув, що розмір типів даних, таких як, intможе відрізнятися залежно від платформи. Моє перше запитання: чи може хтось навести якийсь приклад, що йде не так, коли програма припускає, що intце 4 байти, але на іншій платформі це кажуть 2 байти? Ще одне питання, яке у мене виникло, пов’язане. Я …
74 c++  c 

4
Чому короткий зміст повинен бути перетворений на int перед арифметичними операціями в C та C ++?
З відповідей, які я отримав на це запитання , виходить, що С ++ успадкував цю вимогу до перетворення shortв intпри виконанні арифметичних операцій від С. Чи можу я вибрати мозок, чому це було введено в С? Чому б просто не робити ці операції як short? Наприклад ( взято з пропозиції …

7
Чи можна використовувати NULL як заміну для значення 0?
Чи можна використовувати NULLвказівник як заміну для значення 0? Або щось не так у цьому робити? Наприклад, наприклад: int i = NULL; як заміна для: int i = 0; Як експеримент я склав наступний код: #include <stdio.h> int main(void) { int i = NULL; printf("%d",i); return 0; } Вихід: 0 …

10
Неможливо скласти програму C на Mac після оновлення до Catalina 10.15
Існує попереднє запитання Неможливо скласти програму C на Mac після оновлення до Mojave , і відповіді на це охопили більшість варіантів того, що йде не так. Тепер - з понеділка 2019-10-07 - ви можете перейти на macOS Catalina 10.15. Знову під час оновлення /usr/includeкаталог було оновлено оновленням, хоча XCode 11.0 …
64 c  xcode  macos  gcc  macos-catalina 

4
Яка потреба порожніх дужок '{}' в кінці масиву структур?
Я потрапив на якийсь код c у ядрі Linux: static struct ctl_table ip_ct_sysctl_table[] = { { .procname = "ip_conntrack_max", .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, // ... { .procname = "ip_conntrack_log_invalid", .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &log_invalid_proto_min, .extra2 = …

4
Що робить ((void (*) ()) buf) (); означає?
Я вирішую завдання бінарної експлуатації на picoCTF і натрапив на цей фрагмент коду: ((void (*)())buf)(); де bufсимвольний масив. Я вирішив завдання, але не можу зрозуміти, що саме це робить. Я подивився на цю нитку, але не зміг розібратися. Що ((void (*)())buf)();означає?

4
Створіть попередження компілятора, якщо відсутня кома ініціалізації масиву const char * array
Я багато використовую рядкові буквальні таблиці в своєму коді С. Усі ці таблиці виглядають приблизно так: static const char* const stateNames[STATE_AMOUNT] = { "Init state", "Run state", "Pause state", "Error state", }; Проблема з кодом вище полягає в тому, якщо таблиця стає довшою і змінюється під час розробки, я час …
53 c  initialization 

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