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

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

11
Як з'єднати два рядки в C?
Як додати два рядки? Я спробував name = "derp" + "herp";, але сталася помилка: Експресія повинна мати інтегральний або enum тип
141 c  string 

7
Чи дозволено коротке замикання логічних операторів? А порядок оцінювання?
Чи зобов’язаний стандарт ANSI дозволити логічним операторам бути короткозамкненим або в C, або C ++? Я збентежений, бо згадую книгу K&R, що ваш код не повинен залежати від короткого замикання цих операцій, оскільки вони можуть не робити. Може хтось, будь ласка, зазначить, де у стандарті сказано, що логічна операція завжди …


7
Який розмір перерахунку в С?
Я створюю набір значень enum, але мені потрібно, щоб кожне значення enum було шириною 64 біт. Якщо я правильно пригадую, перерахунок, як правило, такого ж розміру, як і int; але я подумав, що десь прочитав, що (принаймні, у GCC) компілятор може зробити перерахунок будь-якої ширини, яку вони потребують, щоб утримати …
140 c  enums 

5
Що таке об’єктний файл у C?
Я читаю про бібліотеки на С, але ще не знайшов пояснення щодо того, що таке об’єктний файл. Яка реальна різниця між будь-яким іншим складеним файлом та об’єктним файлом? Я був би радий, якби хтось міг пояснити людською мовою.

9
Чому оператор перемикання розрахований на необхідність перерви?
Дано просту заяву про перемикання switch (int) { case 1 : { printf("1\n"); break; } case 2 : { printf("2\n"); } case 3 : { printf("3\n"); } } Відсутність заяви про перерву у випадку 2 означає, що виконання триватиме всередині коду для випадку 3. Це не випадковість; це було розроблено …
139 c  language-design 

11
Чи використовує застарілий компілятор C ризик безпеки?
У виробництві є декілька систем побудови, про які ніхто не піклується, і ці машини працюють за давніми версіями GCC, як GCC 3 або GCC 2. І я не можу переконати керівництво оновити його до більш недавнього: вони кажуть, "якщо не зламаються, не виправляйте". Оскільки ми підтримуємо дуже стару базу коду …
139 c  security  gcc 

16
Як ви реалізуєте клас на C? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб він зосередив увагу на одній проблемі лише редагуючи цю публікацію . Закрито 12 місяців тому . Удосконаліть це питання Якщо припустити, що я повинен використовувати C (немає C ++ або …
139 c  class  oop  embedded 

18
Де функція itoa в Linux?
itoa()- це дійсно зручна функція для перетворення числа в рядок. Linux, схоже, не має itoa(), є еквівалентна функція чи мені потрібно користуватися sprintf(str, "%d", num)?
139 c  linux 

2
Як відкривати, читати та записувати з послідовного порту на C?
Я трохи заплутаний у читанні та записі до послідовного порту. У мене в Linux є USB-пристрій, який використовує драйвер перетворювача послідовних пристроїв FTDI USB. Коли я підключаю його, він створює: / dev / ttyUSB1. Я думав, що і т. Д. Буде просто відкривати та читати / писати з нього в …
139 c  linux  serial-port 


12
Найбільш складні / корисні команди для налагодження gdb [закрито]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …
138 c  unix  gdb  debugging  dbx 

5
Написання програм для вирішення помилок вводу / виводу, що спричиняють втрачені записи в Linux
TL; DR: Якщо ядро ​​Linux втрачає захищене записування вводу / виводу , чи є програма, як це дізнатись? Я знаю, що ви повинні мати fsync()файл (і його батьківський каталог) для довговічності . Питання полягає в тому, якщо ядро ​​втрачає брудні буфери, які очікують на запит через помилку вводу / виводу, …
138 c  linux  linux-kernel  posix 

2
Чому початкове виділення C ++ настільки більше, ніж C?
При використанні одного і того ж коду, просто зміна компілятора (з компілятора C на компілятор C ++) змінить кількість виділеної пам'яті. Я не зовсім впевнений, чому це так, і хотів би це зрозуміти більше. Поки найкраща відповідь, яку я отримав, - це "ймовірно, потоки вводу / виводу", що не є …
138 c++  c  benchmarking 

3
Як скласти статичну бібліотеку в Linux?
У мене виникає питання: як скомпонувати статичну бібліотеку в Linux gcc, тобто мені потрібно скомпілювати свій вихідний код у файл з назвою out.a. Чи достатньо просто компілювати команду gcc -o out.a out.c? Я не зовсім знайомий gcc, сподіваюся, хтось може мені подати руку.
138 c  gcc  static-libraries 

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