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

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


3
Різниця між передаючим масивом і вказівником масиву на функцію в C
Яка різниця між двома функціями в С? void f1(double a[]) { //... } void f2(double *a) { //... } Якби я викликав функції по суті довгому масиву, чи поводилися б ці дві функції по-різному, чи займали б вони більше місця в стеку?

12
const char * const порівняно const char *?
Я переглядаю кілька прикладних програм для ознайомлення з C ++, і я натрапив на наступне питання. По-перше, ось приклад коду: void print_string(const char * the_string) { cout << the_string << endl; } int main () { print_string("What's up?"); } У наведеному вище коді може бути замість цього параметр print_string const …
110 c++  c 

9
Створення демона в Linux
У Linux я хочу додати демон, який неможливо зупинити і який відстежує зміни файлової системи. Якщо будь-які зміни будуть виявлені, він повинен записати шлях до консолі, де він був запущений, а також новий рядок. У мене вже готовий код зміни файлової системи, але я не можу зрозуміти, як створити демон. …
110 c  linux  daemon 

30
Як змінити список, пов'язаний окремо, використовуючи лише два покажчики?
Мені цікаво, чи існує якась логіка, щоб перетворити окремо пов'язаний список, використовуючи лише два покажчики. Нижче використовується для зміни одного пов'язаного списку з використанням трьох покажчиків , а саме p, q, r: struct node { int data; struct node *link; }; void reverse() { struct node *p = first, *q …

18
Чи буде струн обчислюватися в кілька разів, якщо його використовувати в умовах циклу?
Я не впевнений, чи може наступний код викликати надмірні обчислення, чи це специфічний для компілятора? for (int i = 0; i < strlen(ss); ++i) { // blabla } Чи strlen()буде обчислюватися кожен раз, коли iзбільшуватиметься?
109 c++  c  gcc  optimization  strlen 

4
Яке найшвидше ціле ділення, що підтримує ділення на нуль, незалежно від результату?
Підсумок: Я шукаю найшвидший спосіб розрахунку (int) x / (int) y не отримуючи винятку для y==0. Натомість я просто хочу довільний результат. Фон: При кодуванні алгоритмів обробки зображень мені часто потрібно ділити на (накопичене) значення альфа. Найпростіший варіант - звичайний код C з цілою арифметикою. Моя проблема полягає в тому, …

9
розмір одного члена структури в С
Я намагаюся оголосити структуру, яка залежить від іншої структури. Я хочу використовувати, sizeofщоб бути безпечним / педантичним. typedef struct _parent { float calc ; char text[255] ; int used ; } parent_t ; Тепер я хочу оголосити структуру, child_tяка має той самий розмір, що і parent_t.text. Як я можу це …
109 c  struct  sizeof 


14
Повернення рядка C з функції
Я намагаюся повернути рядок C з функції, але це не працює. Ось мій код. char myFunction() { return "My String"; } В mainЯ кличу це наступним чином : int main() { printf("%s", myFunction()); } Я також спробував деякі інші способи myFunction, але вони не працюють. Наприклад: char myFunction() { char …
109 c 

4
Що таке uint_fast32_t і чому його слід використовувати замість звичайних int та uint32_t?
Отже, причина typedef: ed примітивних типів даних полягає в тому, щоб абстрагувати представництво низького рівня та полегшити його розуміння ( uint64_tзамість long longтипу, який становить 8 байт). Однак є те, uint_fast32_tщо має те саме typedef, що uint32_t. Чи буде використання «швидкої» версії програму швидше?
109 c++  c  types 

6
(A + B + C) ≠ (A + C + B) і упорядкування компілятора
Додавання двох 32-бітних цілих чисел може призвести до переповнення цілого числа: uint64_t u64_z = u32_x + u32_y; Цього переповнення можна уникнути, якщо одне із 32-розрядних цілих чисел спочатку переведено на кастинг або додане до 64-бітного цілого числа. uint64_t u64_z = u32_x + u64_a + u32_y; Однак якщо компілятор вирішить змінити …

11
Помилка компіляції GCC з> 2 Гб коду
У мене величезна кількість функцій на загальну суму близько 2,8 Гб об'єктного коду (на жаль, немає можливості обійтись, наукові обчислення ...) Коли я намагаюся зв'язати їх, я отримую (очікувані) relocation truncated to fit: R_X86_64_32Sпомилки, які я сподівався обійти, вказавши прапор компілятора -mcmodel=medium. Усі бібліотеки, які пов'язані крім того, якими я …
108 c++  c  gcc  compiler-errors 

1
Що це за синтаксис “[0… 255] =” в C?
Посилаючись на js0n.c Синтаксис коду наведений нижче: static void *gostruct[] = { [0 ... 255] = &&l_bad, ['\t'] = &&l_loop, [' '] = &&l_loop, ['\r'] = &&l_loop, ['\n'] = &&l_loop, ['"'] = &&l_qup, [':'] = &&l_loop, [','] = &&l_loop, ['['] = &&l_up, [']'] = &&l_down, // tracking [] and {} …
108 c  gcc-extensions 

11
Як генерувати випадкове ціле число в межах діапазону
Це далі з раніше опублікованого питання: Як генерувати випадкове число в С? Я хочу мати можливість генерувати випадкове число з певного діапазону, наприклад, від 1 до 6, щоб імітувати сторони плашки. Як би я пішов робити це?
108 c  random 

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