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

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

1
Виконання циклу коду C [продовження]
Це питання продовжується на моє питання тут (за порадою Mystical): Продуктивність циклу коду C Продовжуючи своє запитання, коли я використовую упаковані інструкції замість скалярних інструкцій, код, що використовує внутрішні дані, буде виглядати дуже схожим: for(int i=0; i<size; i+=16) { y1 = _mm_load_ps(output[i]); … y4 = _mm_load_ps(output[i+12]); for(k=0; k<ksize; k++){ for(l=0; …

9
Що швидше: x << 1 або x << 10?
Я не хочу нічого оптимізувати, клянусь, я просто хочу поставити це питання з цікавості. Я знаю, що на більшості апаратних засобів існує команда збірки бітового зсуву (наприклад shl, shr), яка є однією командою. Але чи має значення (наносекундно, або тактово процесор), скільки бітів ви зміщуєте. Іншими словами, чи є щось …
83 c++  c  performance  cpu  low-level 

3
Чому CUDA закріплює пам’ять так швидко?
Я спостерігаю значні прискорення передачі даних, коли використовую закріплену пам’ять для передачі даних CUDA. У Linux основним системним викликом для досягнення цього є mlock. На сторінці користувача mlock зазначено, що блокування сторінки не дозволяє її замінити: mlock () блокує сторінки в діапазоні адрес, починаючи з addr і продовжуючи довгий байт. …
83 c++  c  linux  cuda 

10
Чому ви повинні використовувати strncpy замість strcpy?
Редагувати: я додав джерело для прикладу. Я натрапив на такий приклад : char source[MAX] = "123456789"; char source1[MAX] = "123456789"; char destination[MAX] = "abcdefg"; char destination1[MAX] = "abcdefg"; char *return_string; int index = 5; /* This is how strcpy works */ printf("destination is originally = '%s'\n", destination); return_string = strcpy(destination, …

7
Як передати змінну кількість аргументів у printf / sprintf
У мене є клас, який містить функцію "помилка", яка буде форматувати деякий текст. Я хочу прийняти змінну кількість аргументів, а потім відформатувати їх за допомогою printf. Приклад: class MyClass { public: void Error(const char* format, ...); }; Метод помилки повинен враховувати параметри, викликати printf / sprintf, щоб відформатувати його, а …


8
Як перевірити, чи рядок починається з іншого рядка в C?
Чи є щось подібне startsWith(str_a, str_b)до стандартної бібліотеки C? Потрібно взяти покажчики на два рядки, що закінчуються нульбайтами, і сказати мені, чи перший також повністю з’являється на початку другого. Приклади: "abc", "abcdef" -&gt; true "abcdef", "abc" -&gt; false "abd", "abdcef" -&gt; true "abc", "abc" -&gt; true

4
Різниця між поверхнею та текстурою (SDL / загальне)
Хто-небудь може пояснити мені простими словами, в чому різниця між текстурою і поверхнею? Я бачив, як він використовується в SDL2як SDL_Surfaceі SDL_Texture. SDL_Textureстворюється, з SDL_Surfaceякого в свою чергу створюється зображення / растрове зображення. Обидва - це колекція пікселів. Але я не бачу головної різниці між ними (має щось робити з …
83 c  graphics  sdl  sdl-2 


7
Що означає "прохання про членство" ******* "у чомусь, що не є структурою чи об'єднанням"?
Чи є просте пояснення того, що означає ця помилка? request for member '*******' in something not a structure or union Я стикався з цим кілька разів за час, коли вивчав C, але я не маю уявлення про те, що це означає.
83 c  struct  unions 

6
Як запобігти scanf, що спричиняє переповнення буфера в C?
Я використовую цей код: while ( scanf("%s", buf) == 1 ){ Що було б найкращим способом запобігти можливому переповненню буфера, щоб йому можна було передавати рядки випадкової довжини? Я знаю, що можу обмежити вхідний рядок, викликаючи наприклад: while ( scanf("%20s", buf) == 1 ){ Але я волів би мати можливість …

4
C помітно швидший за C ++ [закрито]
В даний час це питання не підходить для нашого формату запитань та відповідей. Ми очікуємо, що відповіді будуть підтверджені фактами, посиланнями чи експертизою, але це питання, швидше за все, вимагатиме дебатів, аргументів, опитування чи розширеного обговорення. Якщо ви вважаєте, що це питання можна покращити і, можливо, знову відкрити, відвідайте довідковий …
83 c++  c  performance 

6
#ifdef всередині #define
Я намагаюся написати щось подібне: #define COV_ON(x) \ #ifdef COVERAGE_TOOL \ _Pragma (COVERAGE #x) #endif Чи є спосіб визначити COV_ONтак? Я знаю, що я зробив вище, це неправильно, оскільки я не можу мати #ifdefвсередині #define. ( #не є дозволеним символом у #define). То чи є якесь рішення?
83 c  c-preprocessor 

8
Програмування на C: Як програмувати для Unicode?
Які передумови необхідні для жорсткого програмування Unicode? Чи означає це, що мій код не повинен використовувати charтипи ніде, і що потрібно використовувати функції, які можуть мати справу з wint_tі wchar_t? І яку роль у цьому сценарії відіграють багатобайтові послідовності символів?

3
Чому повернути значення, що повертається безкоштовно, недійсне?
Я читаю книгу ( Програмування з POSIX Threads від Butenhof, 1997), яка використовує C, і я натрапив на наступний рядок: (void)free(data); Ось dataлише вказівник на виділену структуру, data = malloc(sizeof(my_struct_t)); Чому результат freeкинуто void? З мого розуміння С, це, мабуть, не має сенсу з двох причин: Безкоштовна функція вже повертається …
82 c  casting  free  void  legacy-code 

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