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

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

10
Завдання-C: BOOL vs bool
Я побачив "новий тип" BOOL( YES, NO). Я читав, що цей тип майже як чарівний. Для тестування я зробив: NSLog(@"Size of BOOL %d", sizeof(BOOL)); NSLog(@"Size of bool %d", sizeof(bool)); Приємно бачити, що обидва журнали відображають "1" (іноді в C ++ bool - це int, а його розмірofof 4) Тож мені …
192 c  objective-c  types  boolean 

19
Чи можу я використовувати двійковий літерал на C або C ++?
Мені потрібно працювати з двійковим номером. Я спробував написати: const x = 00010000; Але це не спрацювало. Я знаю, що я можу використовувати шістнадцяткове число, яке має те саме значення, що й значення 00010000, але я хочу знати, чи є тип C ++ для двійкових чисел, а якщо немає, чи …
191 c++  c  binary 

3
форматування printf () для шістнадцяткової
Це скоріше цікавий запит, ніж важливе питання, але чому при друку шістнадцяткових знаків у вигляді 8-значного числа з провідними нулями це %#08Xне відображає такого ж результату, як 0x%08X? Коли я намагаюся використовувати колишній, 08прапор форматування видаляється, і він не працює просто 8. Знову мені було просто цікаво.
191 c  printf  hex 


12
Пошук шляху поточного виконуваного файлу без / proc / self / exe
Мені здається, що у Linux це легко з / proc / self / exe. Але я хотів би знати, чи є зручний спосіб знайти каталог поточного додатка в C / C ++ з міжплатформенними інтерфейсами. Я бачив, як деякі проекти замислюються з argv [0], але це здається не зовсім надійним. …
190 c++  c  linux  macos  executable 

6
Чому адреса масиву дорівнює його значенню в C?
У наступному біті коду значення вказівника та адреси вказівника відрізняються, як очікувалося. Але значення масиву та адреси не мають! Як це може бути? Вихідні дані my_array = 0022FF00 &my_array = 0022FF00 pointer_to_array = 0022FF00 &pointer_to_array = 0022FEFC #include <stdio.h> int main() { char my_array[100] = "some cool string"; printf("my_array = …
189 c  pointers  arrays 

12
Переслати виклик варіативної функції в C
В C, чи можна переслати виклик варіативної функції? А саме, int my_printf(char *fmt, ...) { fprintf(stderr, "Calling printf with fmt %s", fmt); return SOMEHOW_INVOKE_LIBC_PRINTF; } Пересилання виклику вищезгаданим способом, очевидно, в цьому випадку не є суворо необхідним (оскільки ви можете входити у виклики іншими способами або використовувати vfprintf), але база …
189 c  variadic 

25
Закруглення до наступної потужності 2
Я хочу написати функцію, яка повертає найближчу наступну потужність 2 числа. Наприклад, якщо мій вхід становить 789, вихід повинен бути 1024. Чи є спосіб досягти цього без використання циклів, а лише з використанням декількох побітових операторів?

13
C не так складно: void (* (* f []) ()) ()
Я щойно побачив фотографію сьогодні і думаю, що буду вдячний за пояснення. Отже ось малюнок: Я вважав це заплутаним і цікавився, чи такі коди колись практичні. Я гуглив картинку і знайшов ще одну картинку у цій редакції reddit, і ось ця картинка: Тож це "читання спірально" щось дійсне? Це як …

5
Помилка "елемент ініціалізатора не є постійним" при спробі ініціалізації змінної з const
Я отримую помилку в рядку 6 (ініціалізую my_foo на foo_init) наступної програми, і я не впевнений, що розумію, чому. typedef struct foo_t { int a, b, c; } foo_t; const foo_t foo_init = { 1, 2, 3 }; foo_t my_foo = foo_init; int main() { return 0; } Майте на …
187 c  initialization 

13
Чому зірочка перед назвою змінної, а не після типу?
Чому більшість програмістів на C називають такі змінні: int *myVariable; а не так: int* myVariable; Обидва дійсні. Мені здається, що зірочка - це частина типу, а не частина назви змінної. Хтось може пояснити цю логіку?

3
fork () гілки більше, ніж очікувалося?
Розглянемо наступний фрагмент коду: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Ця програма виводить 8 крапок. Як це можливо? Чи не повинно бути замість цього 6 точок?
186 c++  c  fork 

9
Де gcc шукає файли заголовків C і C ++?
У системі Unix, де gcc шукає файли заголовків? Я витратив трохи часу сьогодні вранці на пошуки деяких файлів заголовків системи, тому я подумав, що це буде хорошою інформацією.
186 c  gcc  header 

1
Як завантажуються завантажувальні програми GCC та g ++?
Це мене клопоче вже деякий час. Як складаються GCC та g ++? Я здогадуюсь, що кожна редакція збирається з попередньо побудованою версією. Це правда? І якщо це так, чи означає це, що найдавніші версії g ++ та GCC були написані на зборах?

14
Коли використовувати вбудовану функцію, а коли її не використовувати?
Я знаю, що inline - це підказка або запит до компілятора і використовується для уникнення накладних викликів функцій. Тож на якій основі можна визначити, є функція кандидатом на вбудоване чи ні? У якому випадку слід уникати вкладки?
185 c++  c  inline 

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