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

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

5
Що спричиняє помилку розбитої труби?
Я знаю, що помилка зламаної труби виникає, коли розетка на стороні однорангової мережі закрита. Але в своєму тесті я зауважив, що негайний виклик "відправити" з цієї сторони, коли сторона однорангового зв'язку закрита, не завжди призводить до помилки поламаної труби. Наприклад: Після закриття сокета на стороні однорангової мережі (я спробував чисте …
84 c  broken-pipe 

12
Чи безпечно повертати структуру на C або C ++?
Я розумію, що цього робити не слід, але я вважаю, що бачив приклади, що роблять щось подібне (код примітки не обов'язково синтаксично правильний, але ідея є) typedef struct{ int a,b; }mystruct; А далі ось функція mystruct func(int c, int d){ mystruct retval; retval.a = c; retval.b = d; return retval; …

16
значення за замовчуванням для елемента структури в C
Чи можна встановити значення за замовчуванням для якогось елемента структури? Я спробував наступне, але це призведе до синтаксичної помилки: typedef struct { int flag = 3; } MyStruct; Помилки: $ gcc -o testIt test.c test.c:7: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token test.c: In function ‘main’: …
84 c  struct 

7
Чи є якісь “шаблони дизайну” в C? [зачинено]
В даний час це питання не підходить для нашого формату запитань та відповідей. Ми очікуємо, що відповіді будуть підтверджені фактами, посиланнями чи експертизою, але це питання, швидше за все, вимагатиме дебатів, аргументів, опитування чи розширеного обговорення. Якщо ви вважаєте, що це питання можна покращити і, можливо, знову відкрити, відвідайте довідковий …

7
Розуміння макросу container_of у ядрі Linux
Коли я переглядав ядро ​​Linux, я знайшов container_ofмакрос, який визначається наступним чином: #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );}) Я розумію, що робить container_of, але що я не розумію, це останнє речення, яке є (type …


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

3
Як боротися зі зіткненнями символів між статично пов'язаними бібліотеками?
Одним з найважливіших правил та найкращих практик при написанні бібліотеки є розміщення всіх символів бібліотеки у просторі імен, що відповідає конкретній бібліотеці. C ++ полегшує це завдяки namespaceключовому слову. У C звичайний підхід полягає в префіксі ідентифікаторів певним префіксом для певної бібліотеки. Правила стандарту С накладають на них деякі обмеження …

9
Як можна зобразити порожній знак?
Зараз я пишу невеличку програму, але при компіляції я постійно отримую цю помилку помилка: порожня символьна константа Я розумію, що це тому, що я намагаюся замінити дійсний символ пустим пробілом, c[i]=''але я не зміг знайти іншого способу представити його.
84 c 

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

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


15
Рекомендовані параметри попередження Gcc для C [закрито]
Закрито . Це питання ґрунтується на думках . Наразі відповіді не приймаються. Хочете покращити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 6 років тому . Удосконалюйте це питання Крім -Wall, які ще застереження люди вважають корисними? http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Warning-Options.html
83 c  gcc  compiler-errors 

9
Перехід від C ++ до C
Після кількох років кодування на C ++ мені нещодавно запропонували роботу з кодуванням на C, у вбудованому полі. Покинувши в стороні питання, правильно чи неправильно відхиляти С ++ у вбудованому полі, в С ++ є деякі особливості / ідіоми, я б багато чого пропустив. Просто назвемо декілька: Загальні, безпечні для …
83 c++  c 

5
Звідки походить слово "прагма"?
Тож я знаю, що таке прагма і для чого вона використовується, але яке значення має саме слово? Я багато разів використовував його в коді, але ніколи не знав, що це слово насправді означає чи означає.
83 c++  c  terminology  pragma 

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