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

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

7
Плутанина щодо ініціалізації масиву в C
На мові C, якщо ініціалізувати такий масив: int a[5] = {1,2}; тоді всі елементи масиву, які явно не ініціалізовані, будуть ініціалізовані неявно нулями. Але якщо я ініціалізую такий масив: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); вихід: 1 0 1 0 0 Я не розумію, чому …

7
Скинути масив C int до нуля: найшвидший спосіб?
Якщо припустити, що у нас є T myarray[100]T = int, непідписаний int, long long int або unsigned long long int, який найшвидший спосіб скинути весь його вміст до нуля (не тільки для ініціалізації, але для скидання вмісту кілька разів у моїй програмі) ? Може, з мемсетом? Те саме питання для …
102 c++  c  arrays  memset 

2
Чи можу я викликати memcpy () та memmove () з "кількістю байтів", встановлених на нуль?
Чи потрібно мені ставитися до випадків, коли мені фактично нічого рухати / копіювати з memmove()/ memcpy()як крайові випадки int numberOfBytes = ... if( numberOfBytes != 0 ) { memmove( dest, source, numberOfBytes ); } або я повинен просто викликати функцію без перевірки int numberOfBytes = ... memmove( dest, source, numberOfBytes …
102 c++  c  pointers  memcpy  memmove 

2
GCC -g vs -g3 GDB Прапор: у чому різниця?
При компілюванні вихідного коду C з gcc або Clang, я завжди використовую -gпрапор для створення інформації про налагодження для gdb. gcc -g -o helloworld helloworld.c Я помітив, що -g3замість цього рекомендують деякі люди . Яка різниця між прапорами -gта -g3прапорами? Також є різниця між -gі -ggdb?
102 c  debugging  gcc  gdb  clang 

4
Використання бібліотеки C ++ у коді С
У мене є бібліотека C ++, яка пропонує різні класи для управління даними. У мене є вихідний код для бібліотеки. Я хочу розширити API C ++ на підтримку викликів функцій C, щоб бібліотека могла одночасно використовуватися з кодом C та кодом C ++. Я використовую ланцюжок інструментів GNU (gcc, glibc …
102 c++  c  gcc  glibc 

8
Чи є “argv [0] = назва виконуваного файлу” прийнятим стандартом чи просто загальноприйнятою умовою?
При передачі аргументу main()в програму C або C ++, argv[0]завжди буде ім’я виконуваного файлу? Або це просто загальноприйнята конвенція і не гарантується, що це буде правдою у 100% випадків?
102 c++  c  standards  argv 

7
Як обчислюється контрольна сума CRC32?
Можливо, я просто не бачу цього, але CRC32 здається або непотрібним, або недостатньо поясненим, де б я не міг знайти в Інтернеті. Я розумію, що це залишок від арифметичного поділу значення повідомлення, що не ґрунтується на перенесенні, розділеного на (багатогранник) поліномом, але фактична реалізація цього мені уникає. Я прочитав "Безболісний …
102 c  checksum  crc32 

24
Чому ви не використовуєте C для своїх веб-додатків?
Я сьогодні переглядав кілька різних веб-серверів сьогодні вранці, коли натрапив на G-WAN . Як я розумію, його веб-сервер написаний на C, і ви повинні скористатися ним, написавши свої веб-сайти / веб-сайти в C. Однією з явних переваг є швидкість, як пропонує сайт G-WAN. Однак на форумах творець G-WAN запитав, чому …
101 php  c  web-applications 

16
Функція таймера, щоб забезпечити час у наносекундах за допомогою C ++
Я хочу обчислити час, який потрібно API, щоб повернути значення. Час, необхідний для такої дії, знаходиться в просторі наносекунд. Оскільки API - це клас / функція C ++, я використовую timer.h для того, щоб зробити те ж саме: #include <ctime> #include <cstdio> using namespace std; int main(int argc, char** argv) …
101 c++  c  timer 

4
специфікатори формату printf для uint32_t та size_t
У мене є таке size_t i = 0; uint32_t k = 0; printf("i [ %lu ] k [ %u ]\n", i, k); Я отримую таке попередження при компілюванні: format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’ Коли я запустив це за допомогою шини, я отримав наступне: …
101 c  printf 

1
Що означає [N… M] в ініціалізаторах C сукупності?
З рядка 123 sys.c : void *sys_call_table[__NR_syscalls] = { [0 ... __NR_syscalls-1] = sys_ni_syscall, #include <asm/unistd.h> }; sys_call_tableце загальний покажчик на масиви, я можу це бачити. Однак що таке позначення: [0 ... __NR_syscalls-1] Що таке ...? EDIT: Тут я дізнався ще один фокус C: #include <asm/unistd.h>буде попередньо оброблений та замінений …
101 c  linux  kernel 

14
Який найкращий спосіб зробити зворотний цикл у C / C # / C ++?
Мені потрібно рухатись назад через масив, тому у мене є такий код: for (int i = myArray.Length - 1; i >= 0; i--) { // Do something myArray[i] = 42; } Чи є кращий спосіб зробити це? Оновлення: Я сподівався, що, можливо, у C # є якийсь вбудований механізм для …
101 c#  c++  c 

13
Спробуйте увійти в C
Я сьогодні думав про блоки "пробувати / ловити", що існують іншими мовами. На деякий час це гуглило, але безрезультатно. З того, що я знаю, не існує такого поняття, як спробувати / зловити в C. Однак, чи є спосіб їх "імітувати"? Звичайно, є твердження та інші хитрощі, але нічого подібного до …
101 c 

7
Створення рядків у форматі C (не друкуючи їх)
У мене є функція, яка приймає рядок, тобто: void log_out(char *); Викликаючи це, мені потрібно створити відформатований рядок на льоту, як: int i = 1; log_out("some text %d", i); Як це зробити в ANSI C? Тільки, оскільки sprintf()повертає int, це означає, що я повинен написати щонайменше 3 команди, наприклад: char …
101 c  string 


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