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

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

10
Що являє собою тип, за яким слідує _t (підкреслення-t)?
Це здається простим запитанням, але я не можу його знайти за допомогою пошуку переповнення стека чи Google. Що означає тип, який супроводжується _tсереднім? Як от int_t anInt; Я багато бачу в коді С, який мав на увазі попрацювати з обладнанням - я не можу не вважати, що вони пов'язані.

12
Як перетворити рядок в ціле число в C?
Я намагаюся з'ясувати, чи існує альтернативний спосіб перетворення рядка в ціле число в C. Я регулярно викладаю наступне у своєму коді. char s[] = "45"; int num = atoi(s); Отже, є кращий чи інший спосіб?
260 c  string  atoi 

10
Як запобігти SIGPIPE (або правильно поводитися з ними)
У мене невелика серверна програма, яка приймає з'єднання в TCP або локальному сокеті UNIX, читає просту команду і, залежно від команди, надсилає відповідь. Проблема полягає в тому, що клієнт може не мати інтересу до відповіді іноді і виходить зранку, тому запис у цей сокет спричинить SIGPIPE і призведе до збою …
259 c  io  signals  broken-pipe  sigpipe 

12
Використання оператора стрілки (->) в С
Я читаю книгу під назвою "Навчи себе C за 21 день" (я вже навчився Java та C #, тому я рухаюся значно швидшими темпами). Я читав розділ про вказівники і оператор-> (стрілка) підійшов без пояснень. Я думаю, що він використовується для виклику членів та функцій (як еквівалент оператора (крапка), але …
257 c  pointers  syntax 

3
Чому malloc + memset повільніше, ніж calloc?
Відомо, що callocвін відрізняється від того, mallocщо він ініціалізує виділену пам'ять. З calloc, пам'ять встановлена ​​в нуль. З malloc, пам'ять не очищається. Тож у повсякденній роботі я розглядаю callocяк malloc+ memset. До речі, для розваги я написав наступний код для орієнтиру. Результат - заплутаний. Код 1: #include<stdio.h> #include<stdlib.h> #define BLOCK_SIZE …
256 c  malloc 

10
Використання GCC для виготовлення читабельної збірки?
Мені було цікаво, як використовувати GCC у своєму вихідному файлі C, щоб скинути мнемонічну версію машинного коду, щоб я міг бачити, до чого збирається мій код. Це можна зробити за допомогою Java, але мені не вдалося знайти спосіб за допомогою GCC. Я намагаюся переписати метод С на зборах і бачу, …
256 c  gcc  assembly 

15
Призначення об'єднань в C і C ++
Раніше я зручніше використовував спілки; сьогодні я насторожився, коли прочитав цей пост і дізнався, що це код union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; // ARGB::colour is the active member from now on // …
254 c++  c  unions  type-punning 

11
Чому вам потрібно зв’язати математичну бібліотеку на C?
Якщо я включаю <stdlib.h>або <stdio.h>в програму C, мені не потрібно пов'язувати їх під час компіляції, але я маю посилатися на <math.h>, наприклад, -lmз gcc, наприклад: gcc test.c -o test -lm У чому причина цього? Чому я повинен явно пов'язувати математичну бібліотеку, а не інші бібліотеки?
254 c  compilation  math.h 



6
Чому дорівнює 0 <-0x80000000?
У мене нижче проста програма: #include &lt;stdio.h&gt; #define INT32_MIN (-0x80000000) int main(void) { long long bal = 0; if(bal &lt; INT32_MIN ) { printf("Failed!!!"); } else { printf("Success!!!"); } return 0; } Умова if(bal &lt; INT32_MIN )завжди вірна. Як це можливо? Це добре працює, якщо я зміню макрос на: #define …

10
Що означає {0} при ініціалізації об'єкта?
Коли {0}використовується для ініціалізації об'єкта, що це означає? Я {0}ніде не можу знайти жодних посилань , і через фігурні дужки пошук Google не корисний. Приклад коду: SHELLEXECUTEINFO sexi = {0}; // what does this do? sexi.cbSize = sizeof(SHELLEXECUTEINFO); sexi.hwnd = NULL; sexi.fMask = SEE_MASK_NOCLOSEPROCESS; sexi.lpFile = lpFile.c_str(); sexi.lpParameters = args; …
252 c++  c 



22
Як C обчислює sin () та інші математичні функції?
Я переглядав .NET-розбирання та вихідний код GCC, але, здається, ніде не знаходжу реальної реалізації sin()та інших математичних функцій ... вони, як видається, завжди посилаються на щось інше. Хтось може допомогти мені їх знайти? Я відчуваю, що навряд чи ВСЕ апаратне забезпечення, яке буде працювати на C, підтримує тригерні функції в …
248 c  math  trigonometry 

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