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

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

1
Остаточне керівництво та перелік книг C
Відповіді на це запитання - це зусилля громади . Відредагуйте наявні відповіді, щоб покращити цю публікацію. Наразі не приймає нових відповідей чи взаємодій. Це питання намагається зібрати у спільноті список якісних книг наc мова програмування, орієнтована на різні рівні кваліфікації. C - це складна мова програмування, яку важко підібрати в …
400 c 

25
Чому використання аллока () не вважається хорошою практикою?
alloca()виділяє пам'ять на стек, а не на купу, як у випадку malloc(). Отже, коли я повертаюся з розпорядку, пам'ять звільняється. Отже, насправді це вирішує мою проблему звільнення динамічно розподіленої пам'яті. Звільнення пам'яті, що виділяється, malloc()є головним болем, і якщо якимось чином пропущене, призводить до всіляких проблем з пам'яттю. Чому використання …
400 c  stack  malloc  allocation  alloca 

16
Статичне сполучення проти динамічного зв'язку
Чи є певні переконливі причини для вибору статичного зв’язку через динамічне з'єднання або навпаки в певних ситуаціях? Я чув або читав наступне, але я не знаю достатньо з цього приводу, щоб підтвердити його правдивість. 1) Різниця в швидкості виконання між статичним зв'язком і динамічним зв'язком зазвичай незначна. 2) (1) не …

12
Де я можу знайти поточні стандартні документи на C або C ++?
Відповіді на це запитання - це зусилля громади . Відредагуйте наявні відповіді, щоб покращити цю публікацію. Наразі не приймає нових відповідей чи взаємодій. На цей питання є відповіді на Stack Overflow на російському : Где взяти стандарт C ++? На багато запитань відповідь, здається, знаходиться у «стандарті». Однак де ми …
394 c++  c  standards  c++-faq 

11
Наскільки небезпечно порівнювати значення з плаваючою комою?
Я знаю, UIKitвикористовує CGFloatчерез незалежну систему координат роздільної здатності. Але кожен раз, коли я хочу перевірити, чи frame.origin.xє, наприклад , 0це мені нудно: if (theView.frame.origin.x == 0) { // do important operation } Чи не CGFloatвразлива до помилкових спрацьовувань при порівнянні з ==, <=, >=, <, >? Це плаваюча точка, …

6
Найшвидший спосіб визначити, чи є ціле число між двома цілими числами (включно) з відомими наборами значень
Чи є швидший спосіб x >= start && x <= endперевірити, чи є ціле число між двома цілими числами? ОНОВЛЕННЯ : Моя конкретна платформа - iOS. Це частина функції розмиття поля, яка обмежує пікселі колом у заданому квадраті. ОНОВЛЕННЯ : Після спробу прийнятої відповіді я отримав порядок прискорення масштабу в …
389 c++  c  performance  math 

10
Чому функція без параметрів (порівняно з фактичним визначенням функції) складається?
Я щойно натрапив на чийсь код C, який я плутаю, чому він складається. Є два моменти, які я не розумію. По-перше, прототип функції не має параметрів порівняно з фактичним визначенням функції. По-друге, параметр у визначенні функції не має типу. #include <stdio.h> int func(); int func(param) { return param; } int …


11
Як безкоштовний знає, скільки безкоштовно?
У програмуванні на C ви можете безкоштовно передавати будь-який вказівник, який вам подобається як аргумент, як він може знати розмір виділеної пам'яті, щоб звільнити? Щоразу, коли я передаю вказівник на якусь функцію, я також повинен передавати розмір (тобто масив з 10 елементів повинен отримувати 10 як параметр, щоб знати розмір …
384 c  size  pointers  free 





14
Невизначена посилання на pthread_create в Linux
Я взяв таку демонстраційну версію в Інтернеті з https://computing.llnl.gov/tutorials/pthreads/ #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 void *PrintHello(void *threadid) { long tid; tid = (long)threadid; printf("Hello World! It's me, thread #%ld!\n", tid); pthread_exit(NULL); } int main (int argc, char *argv[]) { pthread_t threads[NUM_THREADS]; int rc; long t; for(t=0; t<NUM_THREADS; t++){ …

7
Чому порядок циклів впливає на продуктивність при ітерації над 2D масивом?
Нижче наведено дві програми, які майже однакові, за винятком того, що я перемикав iі jзмінні навколо. Вони обидва працюють за різну кількість часу. Може хтось пояснить, чому це відбувається? Версія 1 #include <stdio.h> #include <stdlib.h> main () { int i,j; static int x[4000][4000]; for (i = 0; i < 4000; …

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