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

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

1
Яка мета статичного ключового слова в параметрі масиву функції типу "char s [static 10]"?
Під час перегляду якогось вихідного коду я натрапив на таку функцію: void someFunction(char someArray[static 100]) { // do something cool here } З деяким експериментом здається, що там можуть з’явитися і інші кваліфікуючі: void someFunction(char someArray[const]) { // do something cool here } Виявляється, що класифікатори дозволені всередині, [ ]коли …
144 c  arrays  parameters  static 

6
У чому полягає перевага __builtin_expect GCC в інших операторах?
Я натрапив на те, #defineв якому вони використовують __builtin_expect. Документація говорить: Вбудована функція: long __builtin_expect (long exp, long c) Ви можете використовувати __builtin_expectдля надання компілятору інформації про передбачення галузей. Взагалі, вам слід віддати перевагу реальним відгукам профілів для цього ( -fprofile-arcs), оскільки програмісти, як відомо, погано прогнозують, як реально працюють …
144 c  linux  gcc  built-in 



9
Яка різниця між сигакцією та сигналом?
Я збирався додати додатковий обробник сигналу в додаток, який ми тут маємо, і я помітив, що автор використовував sigaction()для налаштування інших обробників сигналів. Я збирався використовувати signal(). Для дотримання конвенції я повинен використовувати, sigaction()але якщо я писав з нуля, що мені вибрати?
143 c  signals  posix 

2
Значення прапорця -низу при компілюванні
У різних багатопотокових проектах C і C ++ я бачив -pthread прапор застосовується як до етапу компіляції, так і для зв'язування, а інші взагалі не використовують його і просто переходять -lpthreadна етап зв’язку. Чи є якась небезпека не скласти та зв’язати -pthreadпрапор - тобто що -pthreadнасправді робить? Мене насамперед цікавлять …
143 c++  c  linux  pthreads 

4
Яке відношення між BLAS, LAPACK та ATLAS
Я не розумію, як пов’язані BLAS, LAPACK та ATLAS і як мені їх використовувати разом! Я переглядав усі їх посібники і маю загальне уявлення про BLAS та LAPACK, і як їх використовувати з дуже небагатьма прикладами, які я знайду, але я не можу знайти жодних реальних прикладів за допомогою ATLAS, …
143 c  lapack  blas  atlas 

16
Вказівка ​​на уточнення вказівника
Я дотримувався цього підручника про те, як працює покажчик на покажчик . Дозвольте мені процитувати відповідний уривок: int i = 5, j = 6, k = 7; int *ip1 = &i, *ip2 = &j; Тепер ми можемо встановити int **ipp = &ip1; і ippвказує на ip1які вказує i. *ippє ip1, …
142 c  pointers 

6
_DEBUG проти NDEBUG
Яке визначення препроцесора слід використовувати для вказівки розділів налагодження коду? Використовуйте #ifdef _DEBUGабо #ifndef NDEBUGє кращий спосіб зробити це, наприклад #define MY_DEBUG? Я думаю _DEBUG, що Visual Studio є специфічним, стандарт NDEBUG?
142 c++  c  debugging 


30
Приховані особливості С
Заблокований . Це запитання та його відповіді заблоковано, оскільки це питання поза темою, але має історичне значення. Наразі він не приймає нових відповідей чи взаємодій. Я знаю, що у всіх реалізаціях компілятора С є стандарт, тому не повинно бути прихованих функцій. Незважаючи на це, я впевнений, що всі розробники C …
141 c  hidden-features 

21
Перетворіть object-c typedef в його еквівалент рядка
Якщо припустити, що в моєму файлі .h я вказаний typedef: typedef enum { JSON, XML, Atom, RSS } FormatType; Я хотів би побудувати функцію, яка перетворює числове значення typedef у рядок. Наприклад, якщо повідомлення [self toString:JSON]було надіслано; вона поверне «JSON». Функція виглядала б приблизно так: -(NSString *) toString:(FormatType)formatType { //need …
141 c  objective-c  enums  typedef 

16
Яка мета блоку "if (0)" у блоці if-else?
Моє запитання стосується рядка, який я згадав у цій темі, і який я бачу в багатьох місцях всередині виробничого коду. Загальний код виглядає приблизно так: if (0) { // Empty braces } else if (some_fn_call()) { // actual code } else if (some_other_fn_call()) { // another actual code ... } …
141 c  if-statement 

23
Як пояснити початківцю покажчики С (декларація проти одинарних операторів)?
Нещодавно я мав задоволення пояснювати покажчики початківцю програмування на С і натрапляв на наступні труднощі. Це може не здатися проблемою, якщо ви вже знаєте, як користуватися покажчиками, але спробуйте зрозуміти наступний приклад чітко: int foo = 1; int *bar = &foo; printf("%p\n", (void *)&foo); printf("%i\n", *bar); Для абсолютного початківця вихід …
141 c  pointers 

8
Ефективніше використовувати if-return-return чи if-else-return?
Припустимо, у мене є ifзаява з a return. З точки зору ефективності, чи повинен я використовувати? if(A > B): return A+1 return A-1 або if(A > B): return A+1 else: return A-1 Чи слід віддати перевагу тому чи іншому при використанні компільованої мови (C) або сценарію (Python)?

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