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

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



7
Який розмір бітів long у 64-розрядних Windows?
Не так давно хтось сказав мені, що longце не 64 біти на 64-бітних машинах, і я завжди повинен користуватися int. Це для мене не мало сенсу. Я бачив, як документи (наприклад, офіційний на офіційному сайті Apple) говорять, що longце дійсно 64 біти при компіляції для 64-бітного процесора. Я подивився, що …
137 c++  c  windows  64-bit  porting 

12
Яка користь від припинення, якщо… інше, якщо конструкції з іншим пунктом?
Наша організація має необхідне правило кодування (без будь-якого пояснення), яке: якщо… інше, якщо конструкції слід припинити за допомогою іншого пункту Приклад 1: if ( x < 0 ) { x = 0; } /* else not needed */ Приклад 2: if ( x < 0 ) { x = 0; …
136 c  misra 

12
Які платформи мають щось інше, ніж 8-бітний графік?
Час від часу хтось із SO зазначає, що char(також "байт") не обов'язково 8 біт . Здається, що 8-бітний charмайже універсальний. Я б подумав, що для основних платформ необхідно мати 8-розрядний, charщоб забезпечити його життєздатність на ринку. Зараз і історично, які платформи використовують a, charщо не є 8 бітами, і чому …
136 c++  c  cross-platform 

9
Чому функції C не можна керувати іменами?
Нещодавно у мене було інтерв'ю, і одне запитання було в чому полягає в застосуванні extern "C"коду C ++. Я відповів, що це використовувати функції C у коді C ++, оскільки C не використовує керування іменами. Мене запитали, чому C не використовує керування іменами, і якщо чесно, я не зміг відповісти. …
136 c++  c  name-mangling  extern-c 

6
Як зателефонувати на C від Swift?
Чи є спосіб зателефонувати на підпрограми C від Swift? Дуже багато бібліотек iOS / Apple - це лише C, і я все одно хотів би їх викликати. Наприклад, я хотів би отримати можливість швидко зателефонувати в бібліотеки виконання програми objc. Зокрема, як ви з'єднуєте заголовки iOS C?
136 c  swift 

8
Яка мета використання -pedantic у компіляторі GCC / G ++?
Ця примітка говорить: -ansi: повідомляє компілятору реалізувати параметр мови ANSI. Це вимикає певні "особливості" GCC, несумісні зі стандартом ANSI. -pedantic: використовується разом із -ansiцим, це вказує компілятору суворо дотримуватися стандарту ANSI, відкидаючи будь-який код, який не відповідає. Насамперед: Яка мета -pedanticі -ansiпараметри компілятора GCC / G ++ (я не міг …
136 c++  c  gcc  g++ 


5
Неможливо зрозуміти такий спосіб обчислення площі числа
Я знайшов функцію, яка обчислює квадрат числа: int p(int n) { int a[n]; //works on C99 and above return (&a)[n] - a; } Він повертає значення n 2 . Питання в тому, як це робити? Після невеликого тестування я виявив, що між (&a)[k]і (&a)[k+1]є sizeof(a)/ sizeof(int). Чому так?

4
"Int main (vooid)"? Як це працює?
Нещодавно мені довелося набрати невелику програму тестування на С, і під час цього я зробив орфографічну помилку в основній функції, випадково використовуючи vooidзамість void. І все-таки це все працювало. Зменшивши його до найменшої повної версії, я закінчив: int main (vooid) { return 42; } Це дійсно компілюється ( gcc -Wall …
135 c  syntax  main 

8
Чи підписано непідписане перетворення на С - це завжди безпечно?
Припустимо, у мене є наступний код C. unsigned int u = 1234; int i = -5678; unsigned int result = u + i; Які неявні перетворення тут відбуваються і чи безпечний цей код для всіх значень uта i? (Безпечно, в тому сенсі, що, хоча результат у цьому прикладі переповниться якоюсь …
135 c  type-conversion 

30
Який улюблений трюк програмування на С? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …
134 c 

3
Як цей фрагмент коду визначає розмір масиву, не використовуючи sizeof ()?
Переглядаючи кілька запитань щодо співбесіди на C, я знайшов питання, в якому сказано "Як знайти розмір масиву в C, не використовуючи оператора sizeof?", Із наступним рішенням. Це працює, але я не можу зрозуміти, чому. #include <stdio.h> int main() { int a[] = {100, 200, 300, 400, 500}; int size = …

9
Чи може рекурсивна функція бути вбудованою?
inline int factorial(int n) { if(!n) return 1; else return n*factorial(n-1); } Коли я читав це , виявив, що наведений вище код призведе до "нескінченної компіляції", якщо компілятор не обробляється правильно. Як компілятор вирішує, вбудувати функцію чи ні?

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