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

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

6
Оператор тильди в С
Я бачив оператор tilde, який використовується в алгоритмі хешування ELF, і мені цікаво, що він робить. (Код від Вічно Плутати .) unsigned elf_hash ( void *key, int len ) { unsigned char *p = key; unsigned h = 0, g; int i; for ( i = 0; i < len; …
95 c++  c  operators 

9
Помилка компіляції: “g ++: помилка при спробі виконати 'cc1plus': execvp: Немає такого файлу чи каталогу”
Коли я компілюю програму C / C ++ з popenin php..., я отримав цю помилку: g++: error trying to exec 'cc1plus': execvp: No such file or directory але якщо я запускаю php-код в оболонці .. він працює нормально .. в Arch Linux .. Код PHP: <?php function rfile($fp) { $out=""; …
95 php  c++  c  linux  gcc 

3
Що таке "тупання пам'яті"?
Я щойно натрапив на цю публікацію в блозі, де згадується «тупання пам’яті»: програма C ++, яка легко здатна заглушити пам'ять (те, про що ви, мабуть, ніколи не чули, якщо ви народилися в світі керованого коду.) А насправді я ніколи про це не чув! Отже, що це, пам’ять тупотить, тупає пам’ять? …

3
Як я можу створити файл Makefile для проектів C із підкаталогами SRC, OBJ та BIN?
Кілька місяців тому я придумав такий загальний Makefileдля шкільних завдань: # ------------------------------------------------ # Generic Makefile # # Author: yanick.rochon@gmail.com # Date : 2010-11-05 # # Changelog : # 0.01 - first version # ------------------------------------------------ # project name (generate executable with this name) TARGET = projectname CC = gcc -std=c99 -c …
95 c  makefile 

3
Як можна побачити вміст стека за допомогою GDB?
Я новачок у GDB, тому маю кілька запитань: Як я можу подивитися на вміст стека? Приклад: щоб переглянути вміст реєстру, я вводжу info registers. Для стека, яким він повинен бути? Як я можу побачити вміст $0x4(%esp)? Коли я print /d $0x4(%esp)вводжу, GDB видає помилку. Платформа: Linux та GDB
95 c  assembly  gdb 

7
Різниця між статичним розподілом пам’яті та динамічним розподілом пам’яті
Я хотів би знати, в чому різниця між статичним виділенням пам'яті та динамічним виділенням пам'яті? Не могли б ви пояснити це на будь-якому прикладі?

2
Несподіваний дозвіл exec з mmap при складанні файлів, що входять до проекту
Я з цим стукаю головою в стіну. У моєму проекті, коли я виділяю пам'ять за mmapдопомогою відображення ( /proc/self/maps), видно, що це читабельна та виконувана область, незважаючи на те, що я запитував лише читабельну пам'ять. Переглянувши strace (що виглядало добре) та інші налагодження, я зміг визначити єдине, що, здається, уникне …
94 c  linux  assembly  mmap 

13
C # проти C - велика різниця в продуктивності
Я знаходжу значні відмінності в продуктивності між подібним кодом у C anc C #. Код С: #include <stdio.h> #include <time.h> #include <math.h> main() { int i; double root; clock_t start = clock(); for (i = 0 ; i <= 100000000; i++){ root = sqrt(i); } printf("Time elapsed: %f\n", ((double)clock() - …
94 c#  c  performance 

9
Що не так із цим кодом 1988 року С?
Я намагаюся зібрати цей фрагмент коду з книги "Мова програмування на С" (K&R). Це оголена версія програми UNIX wc: #include <stdio.h> #define IN 1; /* inside a word */ #define OUT 0; /* outside a word */ /* count lines, words and characters in input */ main() { int c, …
94 c 

17
У чому сенс покажчиків на функції?
У мене проблеми з переглядом корисності покажчиків на функції. Я думаю, це може бути корисним у деяких випадках (зрештою, вони існують), але я не можу подумати про випадок, коли краще або неминуче використовувати покажчик функції. Не могли б ви навести якийсь приклад хорошого використання покажчиків на функції (на C або …
94 c++  c  function  pointers  c++-faq 

12
Як розрахувати використання процесора процесом PID в Linux з C?
Я хочу програмно [в C] розрахувати% використання процесора для даного ідентифікатора процесу в Linux. Як ми можемо отримати% використання процесора в реальному часі для даного процесу? Щоб зробити це далі зрозумілим: Я мав би змогу визначити використання центрального процесора для наданого процесода чи процесу. Процес не повинен бути дочірнім. Я …
94 c  linux  cpu-usage 

7
Як скомпілювати без попереджень, що трактуються як помилки?
Проблема в тому, що той самий код, який добре компілюється в Windows, не може скомпілювати на Ubuntu. Щоразу, коли я отримую цю помилку: cc1: warnings being treated as errors Зараз це велика кодова база, і я не люблю виправляти всі попередження. Чи можна якось успішно скомпілювати, незважаючи на попередження?

10
Як створити “пробіл” у структурі пам'яті класу C ++?
Питання У контексті низькорівневого вбудованого металу , я хотів би створити порожній простір в пам'яті, в структурі C ++ і без будь-якого імені, щоб заборонити користувачеві доступ до такого розташування пам'яті. Зараз я домігся цього, поставивши потворне uint32_t :96;бітове поле, яке зручно займе місце трьох слів, але воно викличе попередження …

6
Коли я повинен використовувати malloc в C, а коли ні?
Я розумію, як працює malloc (). Моє питання полягає в тому, що я побачу такі речі: #define A_MEGABYTE (1024 * 1024) char *some_memory; size_t size_to_allocate = A_MEGABYTE; some_memory = (char *)malloc(size_to_allocate); sprintf(some_memory, "Hello World"); printf("%s\n", some_memory); free(some_memory); Я пропустив перевірку помилок заради стислості. Моє запитання: чи не можете ви просто …

4
Чи визначені такі типи, як uint32, int32, uint64, int64 у будь-якому заголовку stdlib?
Я часто бачу вихідний код, використовуючи такі типи, як uint32, uint64, і мені цікаво, чи їх слід визначити програмістом у коді програми чи чи вони визначені у стандартному заголовку lib. Який найкращий спосіб мати ці типи у вихідному коді програми?
94 c  std 

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