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

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

9
визначення референтних структур?
Я дуже довго не пишу С, і тому я не впевнений у тому, як мені слід займатися подібними рекурсивними речами ... Я хотів би, щоб кожна клітина містила ще одну клітинку, але я отримую помилку рядки "поле" дитина "має неповний тип". Як справи? typedef struct Cell { int isParent; Cell …
134 c  recursion  struct  typedef 

3
Можлива помилка GCC при поверненні структури з функції
Я вважаю, що знайшов помилку в GCC під час впровадження програми PCG PRNG O'Neill. ( Початковий код у Провіднику компілятора Godbolt ) Після множення oldstateна MULTIPLIER(результат, збережений у rdi), GCC не додає цього результату INCREMENT, INCREMENTзамість цього, movabs'ing в rdx, який потім використовується як повернене значення rand32_ret.state Мінімальний приклад відтворення …
133 c  gcc  assembly  x86-64  compiler-bug 

7
Чому "sizeof (a? True: false)" дає вихід з чотирьох байтів?
У мене є невеликий фрагмент коду про sizeofоператора з потрійним оператором: #include <stdio.h> #include <stdbool.h> int main() { bool a = true; printf("%zu\n", sizeof(bool)); // Ok printf("%zu\n", sizeof(a)); // Ok printf("%zu\n", sizeof(a ? true : false)); // Why 4? return 0; } Вихід ( GCC ): 1 1 4 // …

18
Коли хто-небудь би використовував союз? Це залишок від C-днів лише?
Я навчився, але насправді не профспілки. Кожен текст C або C ++, який я переглядаю, вводить їх (іноді мимоволі), але вони, як правило, дають дуже мало практичних прикладів того, чому або де їх використовувати. Коли профспілки були б корисні в сучасній (або навіть у спадщині) справі? Мої два здогадки - …
133 c++  c  unions 

3
Як printf uint64_t? Не вдалося виконати: "хибний трейлінг"% "у форматі"
Я написав дуже простий тестовий код printf uint64_t: #include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; } Я використовую ubuntu 11.10 (64 біт) та gcc версії 4.6.1, щоб компілювати його, але не вдалося: main.cpp: In function ‘int main()’: …
133 c++  c 

16
Нарізка Windows: _beginthread vs _beginthreadex vs CreateThread C ++
Що є кращим способом запустити нитку _beginthread, _beginthreadxабо CreateThread? Я намагаюся визначити , які переваги / недоліки _beginthread, _beginthreadexі CreateThread. Усі ці функції повертають ручку потоку до новоствореного потоку, я вже знаю, що CreateThread надає трохи додаткової інформації, коли виникає помилка (це можна перевірити, зателефонувавши GetLastError) ... але які речі …
133 c++  c  multithreading  winapi 

7
Чому компілятор не може (або ні) оптимізувати передбачуваний цикл додавання до множення?
Це питання, яке прийшло в голову під час читання блискучої відповіді Mysticial на запитання: чому швидше обробити відсортований масив, ніж несортований масив ? Контекст для задіяних типів: const unsigned arraySize = 32768; int data[arraySize]; long long sum = 0; У своїй відповіді він пояснює, що Intel Compiler (ICC) оптимізує це: …

6
Чи є альтернативна функція сну в С до мілісекунд?
У мене є якийсь вихідний код, який було складено в Windows. Я перетворюю його для роботи на Red Hat Linux. Вихідний код містить <windows.h>файл заголовка, а програміст використовував Sleep()функцію, щоб чекати періоду мілісекунд. Це не буде працювати в Linux. Однак я можу використовувати sleep(seconds)функцію, але вона використовує цілі числа за …
133 c  linux  sleep 

3
LLVM проти клаксону на OS X
У мене є питання щодо llvm, clang та gcc в OS X. Яка різниця між llvm-gcc 4.2, llvm 2.0 та clang? Я знаю, що всі вони ґрунтуються на llvm, але чим вони відрізняються? Окрім швидшого збирання, яка перевага llvm над gcc?
133 c++  c  gcc  llvm  clang 



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

10
Швидкий спосіб впровадження словника в C
Однією з речей, які мені не вистачає при написанні програм на C, є структура даних словника. Який найзручніший спосіб реалізувати його на C? Я шукаю не продуктивність, а простоту кодування з нуля. Я також не хочу, щоб це було загальним - щось на зразок string-> int зробить. Але я хочу, …

13
Як зробити нескінченний порожній цикл, який не буде оптимізований?
Здається, що стандарт C11 означає, що операції ітерації з постійними керуючими виразами не повинні оптимізуватися. Я приймаю поради з цієї відповіді , яка конкретно цитує розділ 6.8.5 проекту проекту: Ітераційний оператор, керуючий вираз якого не є постійним виразом ..., може припускати, що реалізація припиняється. У цій відповіді зазначається, що цикл …

19
Чи швидше відраховувати, ніж рахувати?
Наш вчитель інформатики одного разу сказав, що чомусь ефективніше рахувати, ніж рахувати. Наприклад, якщо вам потрібно використовувати цикл FOR, а індекс циклу десь не використовується (наприклад, друк рядка N * на екран), я маю на увазі такий код, як це: for (i = N; i >= 0; i--) putchar('*'); краще, …
131 c  performance  loops 

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