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

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

22
Позиція найменш значущого біта, яка встановлена
Я шукаю ефективний спосіб визначити позицію найменш значущого біта, встановленого в цілому, наприклад, для 0x0FF0 це було б 4. Тривіальна реалізація така: unsigned GetLowestBitPos(unsigned value) { assert(value != 0); // handled separately unsigned pos = 0; while (!(value & 1)) { value >>= 1; ++pos; } return pos; } Будь-які …


27
Який найшвидший / найефективніший спосіб знайти найвищий встановлений біт (msb) у цілому цілому в C?
Якщо у мене є деяке ціле n, і я хочу знати положення найбільш значущого біта (тобто, якщо найменший значущий біт знаходиться праворуч, я хочу знати положення самого далекого лівого біта, який дорівнює 1), який найшвидший / найефективніший метод з'ясування? Я знаю, що POSIX підтримує ffs()метод у strings.h для пошуку першого …

3
DESTDIR і ПРЕФІКС марки
Я намагаюся змусити встановити програмне забезпечення в певний каталог. Я знайшов кілька способів, але не впевнений, у чому різниця між ними. ./configure --prefix=*** make install DESTDIR=*** make install prefix=*** Я розгублений щодо функцій цих трьох. Чи досягають вони тієї самої мети?
119 c  linux  bash  makefile  configure 


2
Обробка сигналів з декількох потоків в Linux
Що в Linux відбувається, коли програма (яка, можливо, має кілька потоків) отримує сигнал, як SIGTERM або SIGHUP? Яка нитка перехоплює сигнал? Чи може кілька потоків отримати один і той же сигнал? Чи є спеціальна нитка, повністю присвячена обробці сигналів? Якщо ні, що відбувається всередині потоку, який повинен обробляти сигнал? Як …
119 c  linux  multithreading  signals  ipc 

5
Документація / підручник API FFmpeg C [закрито]
Зачинено. Це питання не відповідає вказівкам щодо переповнення стека . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для переповнення стека. Закрито 12 місяців тому . Удосконаліть це питання Я намагаюся знайти документацію для використання API FFmpeg C. Здається, що доступна лише документація на …
119 c  api  documentation  ffmpeg 


10
Створіть вказівник на двовимірний масив
Мені потрібен вказівник на статичний двовимірний масив. Як це робиться? static uint8_t l_matrix[10][20]; void test(){ uint8_t **matrix_ptr = l_matrix; //wrong idea } Я отримую всілякі помилки, такі як: попередження: призначення від несумісного типу вказівника підписане значення не є ні масивом, ні вказівником помилка: недійсне використання гнучких елементів масиву
119 c  arrays  pointers 

9
C покажчики: вказівка ​​на масив фіксованого розміру
Це питання стосується гуру С: В C можна вказати вказівник так: char (* p)[10]; .. що в основному говорить, що цей вказівник вказує на масив з 10 символів. Акуратний факт оголошення такого покажчика полягає в тому, що ви отримаєте помилку часу компіляції, якщо спробуєте призначити вказівник масиву різного розміру на …
119 c  pointers  size 

6
Ініціалізація масиву символів
Я не впевнений, що буде в масиві char після ініціалізації наступними способами. 1. char buf[10] = ""; 2. char buf[10] = " "; 3.char buf[10] = "a"; Для випадку 2, я думаю , buf[0]повинно бути ' ', buf[1]має бути '\0', і від buf[2]до buf[9]буде випадковим зміст. Для випадку 3, я …

6
Як я можу надрукувати на stderr на C?
На мові C надрукувати друк легко, з printfвід stdio.h. Однак як можна друкувати на stderr? Ми можемо використати fprintfдля досягнення цього, мабуть, але його синтаксис здається дивним. Може, ми можемо використовувати printfдля друку на stderr?
119 c  printf  stderr 

1
Який ідіоматичний спосіб у CMAKE додати параметр компілятора -fPIC?
Я натрапив щонайменше на 3 способи це зробити, і мені цікаво, який це ідіоматичний шлях. Це потрібно зробити майже універсально для будь-якої статичної бібліотеки. Я здивований, що генератор Makefile в CMake не автоматично додає це до статичних бібліотек. (якщо я чогось не пропускаю?) target_compile_options(myLib PRIVATE -fPIC) add_compile_options(-fPIC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic") …
119 c++  c  cmake 

6
Виявити, чи stdin є терміналом або трубою?
Коли я виконую " python" з терміналу без аргументів, він відкриває інтерактивну оболонку Python. Коли я виконую " cat | python" з терміналу, він не запускає інтерактивний режим. Якось, не отримуючи жодного вводу, він виявив, що він підключений до труби. Як я можу зробити подібне виявлення в C або C …
118 c++  c  qt  pipe  stdin 

9
Наскільки далеко може пройти витік пам'яті?
Я багато разів стикався з витоком пам'яті. Зазвичай, коли я - mallocніби завтра немає, або звисаю FILE *, як брудна білизна. Я взагалі припускаю (читайте: відчайдушно сподіваюся), що вся пам'ять очищається принаймні, коли програма припиняється. Чи бувають ситуації, коли просочена пам'ять не буде збиратися після завершення роботи програми або збоїв? …
118 c++  c  memory  memory-leaks 

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