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

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

12
Оголошення змінних дороге?
Під час кодування на мові C я зіткнувся з наведеною нижче ситуацією. int function () { if (!somecondition) return false; internalStructure *str1; internalStructure *str2; char *dataPointer; float xyz; /* do something here with the above local variables */ } Враховуючи, що ifоператор у наведеному вище коді може повернутися з функції, …
75 c 

4
Чому gcc дозволяє передавати аргументи функції, визначеної без аргументів?
Я не розумію, чому цей код компілюється? #include <stdio.h> void foo() { printf("Hello\n"); } int main() { const char *str = "bar"; foo(str); return 0; } gcc навіть не видає попередження про те, що я передаю занадто багато аргументів foo (). Це очікувана поведінка?
75 c  gcc  compiler-errors 


4
Чи може argc переповнюватися?
Я блукав у СО і побачив це питання . Потім я почав гадати, чи можу я переповнити argc. Стандарт говорить, що це argv[argc]повинен бути нульовий покажчик, але це буде хибним, якщо переповнення argc. (Я написав невелику програму на С та сценарій python для тестування, але отримав MemoryError.) Дякую! Обґрунтування міжнародного …

7
Різниця між uint8_t, uint_fast8_t та uint_least8_t
Стандарт C99 представляє такі типи даних. Документацію можна знайти тут для бібліотеки stdint AVR. uint8_t означає, що це 8-бітний тип без підпису. uint_fast8_t означає, що це найшвидший непідписаний int з принаймні 8 бітами. uint_least8_t означає, що це беззнаковий int з принаймні 8 бітами. Я розумію, uint8_tщо таке uint_fast8_t(я не знаю, …
75 c++  c  integer  avr  c99 

7
Як насправді працює фріад?
Декларація freadнаступна: size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); Питання полягає в тому: чи є різниця у продуктивності читання двох таких викликів fread: char a[1000]; fread(a, 1, 1000, stdin); fread(a, 1000, 1, stdin); Чи буде він читати 1000байти відразу щоразу?
75 c  fread 


9
Як оголосити 32-розрядне ціле число у C
Який найкращий спосіб оголосити цілочисельний тип, який завжди становить 4 байти на будь-яких платформах? Мене не турбує певний пристрій чи старі машини, які мають 16-розрядну версію int.
75 c  portability 

11
С - визначити, чи є число простим
Я намагаюся придумати метод, який приймає ціле число і повертає логічне значення, щоб сказати, чи є число простим чи ні, і я не знаю багато C; хтось піклується про те, щоб мені підказати? В основному, я б зробив це в C # так: static bool IsPrime(int number) { for (int …
75 c#  c  primes 

4
Як розпочати писати драйвери пристроїв? [зачинено]
Закрито . Це питання ґрунтується на думках . Наразі відповіді не приймаються. Хочете покращити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 2 роки тому . Удосконалюйте це питання Я хотів би навчитися писати драйвери пристроїв, бо, думаю, це було …
75 c  assembly  hardware  drivers 

2
Як отримати вказівник інтерфейсу JNI (JNIEnv *) для асинхронних викликів
Я дізнався, що покажчик інтерфейсу JNI (JNIEnv *) дійсний лише в поточному потоці. Припустимо, я розпочав новий потік всередині власного методу; як він може асинхронно надсилати події до методу Java? Оскільки цей новий потік не може мати посилання на (JNIEnv *). Зберігання глобальної змінної для (JNIEnv *), мабуть, не буде …

19
Чи потрібна коли-небудь петля “do {…} while ()”?
Б'ярн Страуструп (творець C ++) одного разу сказав, що уникає циклів "do / while" і вважає за краще писати код у вигляді циклу "while". [Див. Цитату нижче.] Почувши це, я переконався, що це правда. Які ваші думки? Чи є приклад, коли "робити / в той час" набагато чистіше і легше …
75 c++  c  loops 


12
Покажчики на покажчики проти звичайних покажчиків
Призначення вказівника - зберегти адресу певної змінної. Тоді структура пам'яті наступного коду повинна виглядати так: int a = 5; int *b = &a; ...... адреса пам'яті ...... значення a ... 0x000002 ................... 5 b ... 0x000010 ..... .............. 0x000002 Гаразд Тоді припустимо, що зараз я хочу зберегти адресу вказівника * …
74 c  pointers 

13
Як я можу вирватися з двох вкладених циклів для цілей у Objective-C?
У мене є два цикли for, вкладені таким чином: for(...) { for(...) { } } Я знаю, що є breakзаява. Але мене бентежить, якщо він розриває обидві петлі або лише ту, в якій він був викликаний? Мені потрібно зламати обидва, як тільки я побачу, що немає сенсу повторювати більше разів.
74 c  objective-c  loops 

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