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

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

5
C - специфікатор формату% x
У мене маленьке запитання. Я знаю, що специфікатор формату% x можна використовувати для зчитування значень зі стеку під час атаки рядка формату. Я знайшов такий код: %08x%08x%08x%08x Що означає 08? Що саме робить? Дякую :)
78 c  string  security  format 

2
чому% d означає ціле число?
Я знаю, що це не звучить продуктивно, але я шукаю спосіб запам'ятати всі коди форматування printfдзвінків. %s, %p, %fВсе очевидно, але я не можу зрозуміти , звідки %dприходить. Це %iвже щось інше?
78 c  formatting  printf 

7
srand () - навіщо це називати лише один раз?
Це питання стосується коментаря до цього питання Рекомендований спосіб ініціалізації srand? Перший коментар говорить, що його srand()слід називати ТІЛЬКИ РАЗУ в додатку. Чому це так?
78 c  random  srand 

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

8
memset () або ініціалізація значення для обнулення структури?
У програмуванні API Win32 типово використовувати C structs з декількома полями. Зазвичай лише пара з них мають значущі значення, а всі інші повинні бути обнулені. Цього можна досягти одним із двох способів: STRUCT theStruct; memset( &theStruct, 0, sizeof( STRUCT ) ); або STRUCT theStruct = {}; Другий варіант виглядає чистішим …

7
Що таке функція c_str у c ++
Я щойно почав читати C ++ і виявив, що c ++ має розширені функції для маніпулювання рядками, яких у C немає. Я читаю цю функцію і натрапив, c_str()і з того, що я розумію, це c_strперетворення рядка, який може закінчуватися нулем, а може бути, не в рядок, закінчений нулем. Чи правда? …
78 c++  c  string 


6
Математична константа значення PI в С
Обчислення значення PI є однією зі складної проблеми, і wikipedia розповідає про наближення, зроблені для цього, і каже, що важко точно розрахувати PI. Як C обчислює PI? Чи обчислює це кожен раз, чи використовує менш точну фіксовану величину?
78 c 

8
Віднімання упакованих 8-бітових цілих чисел у 64-бітовому цілому на 1 паралельно, SWAR без апаратного SIMD
Якщо у мене 64-бітове ціле число, яке я інтерпретую як масив упакованих 8-бітових цілих чисел з 8 елементами. Мені потрібно відняти константу 1з кожного упакованого цілого числа під час обробки переповнення без результату, коли один елемент впливає на результат іншого елемента. На даний момент у мене є цей код, і …
77 c++  c  bit-manipulation  simd  swar 

7
Як використовувати nanosleep () в C? Що таке `tim.tv_sec` та` tim.tv_nsec`?
Яка користь tim.tv_secі tim.tv_nsecв наступному? Як я можу заснути виконання протягом 500000мікросекунд? #include <stdio.h> #include <time.h> int main() { struct timespec tim, tim2; tim.tv_sec = 1; tim.tv_nsec = 500; if(nanosleep(&tim , &tim2) < 0 ) { printf("Nano sleep system call failed \n"); return -1; } printf("Nano sleep successfull \n"); return …
77 c  posix  sleep 

1
Що означає це попередження Вальгринда? - попередження встановити діапазон адрес перм
Коли я запускав свою програму проти valgrind, я зіткнувся з таким попередженням. Warning: set address range perms: large range [0x4d59d040, 0x6159d040) (undefined) Warning: set address range perms: large range [0x194f7030, 0x2d4f7050) (noaccess) Warning: set address range perms: large range [0x3959d030, 0x6159d050) (noaccess) Після деякого гуглиння я виявив тут, що це …
77 c  memory  valgrind 

15
Коли цілочисельний <-> покажчик фактично правильний?
Поширений фольклор каже, що: Система типів існує з певної причини. Цілі числа та покажчики є різними типами, в більшості випадків перекидання між ними є неправомірною практикою, може вказувати на помилку проектування, і її слід уникати. Навіть коли виконується такий привід, не слід робити припущення щодо розміру цілих чи покажчиків ( …
77 c++  c  pointers  casting 

3
“Strlen (s1) - strlen (s2)” ніколи не менше нуля
Зараз я пишу програму на С, яка вимагає частого порівняння довжин рядків, тому я написав таку допоміжну функцію: int strlonger(char *s1, char *s2) { return strlen(s1) - strlen(s2) &gt; 0; } Я помітив, що функція повертає true, навіть якщо s1вона має меншу довжину, ніж s2. Хтось може пояснити цю дивну …
77 c  string  debugging  unsigned 

13
Незвичне використання файлу .h у C
Під час читання статті про фільтрацію я виявив дивне використання .hфайлу - використовуйте його для заповнення масиву коефіцієнтів: #define N 100 // filter order float h[N] = { #include "f1.h" }; //insert coefficients of filter float x[N]; float y[N]; short my_FIR(short sample_data) { float result = 0; for ( int …
77 c++  c 

5
Чи має значення порядок членів у структурі?
Я виявив особливу поведінку в C. Розглянемо наведений нижче код: struct s { int a; }; struct z { int a; struct s b[]; }; int main(void) { return 0; } Він компілюється просто чудово. Потім змініть порядок членів struct zтаким чином struct z { struct s b[]; int a; …
77 c  struct 

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