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

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

3
Який заздалегідь заданий макрос я можу використовувати для виявлення кланг?
Я намагаюся виявити компілятор, який використовується для складання мого вихідного коду. Я легко можу знайти заздалегідь задані макроси, щоб перевірити наявність MSVC або GCC (див. Http://predef.sourceforge.net/ наприклад), але я не можу знайти жодного макросу, щоб перевірити наявність кланг. Хтось знає, чи clang визначає такий макрос __CLANG__, щоб знати, що зараз …

7
Як надіслати просту рядок між двома програмами за допомогою труб?
Я спробував шукати в мережі, але майже немає ресурсів. Невеликого прикладу було б достатньо. EDIT Я маю на увазі дві різні програми C, що спілкуються між собою. Одна програма повинна надіслати "Привіт", а інша повинна її отримати. Щось схоже.
111 c  unix  pipe 

8
Чому c = ++ (a + b) дає помилку компіляції?
Після дослідження я прочитав, що оператор приросту вимагає від операнда об'єкт даних, що змінюється: https://en.wikipedia.org/wiki/Increment_and_decrement_operators . Звідси я здогадуюсь, що це дає помилку компіляції, оскільки (a+b)це тимчасове ціле число і тому не піддається зміні. Чи правильно це розуміння? Це був мій перший раз, коли я намагався дослідити проблему, тож якщо …
111 c  increment 

20
Як я можу побудувати невелику операційну систему на старому настільному комп’ютері? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 4 роки тому . Удосконаліть це питання Це може бути марним, оскільки я знаю, що написання операційної системи …

8
Чи є бібліотеки C з відкритим кодом із загальними структурами даних? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …
111 c  data-structures 

13
Чи є перекладач для C? [зачинено]
Зачинено. Це питання не відповідає вказівкам щодо переповнення стека . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для переповнення стека. Закрито 2 роки тому . Заблокований . Це питання та його відповіді заблоковано, оскільки це питання поза темою, але має історичне значення. Наразі …

8
Чи є технічно невизначена поведінка «хакерства»?
Про що я запитую - це добре відомий трюк "останній член структури має змінну довжину". Це щось подібне: struct T { int len; char s[1]; }; struct T *p = malloc(sizeof(struct T) + 100); p->len = 100; strcpy(p->s, "hello world"); Через те, що структура закладена в пам’яті, ми можемо накладати …




3
Химерний спосіб виділення двовимірного масиву?
У проекті хтось просунув цю лінію: double (*e)[n+1] = malloc((n+1) * sizeof(*e)); Який нібито створює двовимірний масив (n + 1) * (n + 1) подвійних. Нібито я кажу, тому що поки що ніхто, кого я запитував, не міг сказати мені, що саме це робить, ані звідки вона походить, або для …

3
Чому два бінарні програми з лише коментарями не змінюють точно збіг у gcc?
Я створив дві програми на С Програма 1 int main() { } Програма 2 int main() { //Some Harmless comments } AFAIK при компілюванні компілятор (gcc) повинен ігнорувати коментарі та надлишкові пробіли, а значить, вихід повинен бути подібним. Але коли я перевірив md5суми вихідних бінарних файлів, вони не відповідають. Я …

30
У C / C ++ який найпростіший спосіб змінити порядок бітів у байті?
Хоча існує кілька способів повернути бітовий порядок у байті, мені цікаво, що саме "найпростіший" для розробника. І під реверсом я маю на увазі: 1110 -> 0111 0010 -> 0100 Це схоже на, але не дублікат цього питання щодо PHP. Це схоже на, але не дублікат цього C питання. Це запитання …
110 c++  c  bit-manipulation 

10
C / C ++ номер рядка
З метою налагодження чи можу я отримати номер рядка в компіляторах C / C ++? (стандартний спосіб або конкретні способи для певних компіляторів) напр if(!Logical) printf("Not logical value at line number %d \n",LineNumber); // How to get LineNumber without writing it by my hand?(dynamic compilation)

11
Як видалити невикористані символи C / C ++ за допомогою GCC та ld?
Мені потрібно жорстко оптимізувати розмір мого виконуваного файлу ( ARMрозробка), і я помітив, що в моїй поточній схемі збірки ( gcc+ ld) невикористані символи не знімаються. Використання arm-strip --strip-unneededдля отриманих виконуваних файлів / бібліотек не змінює розмір виводу виконуваного файлу (я не маю поняття, чому, можливо, він просто не може) …
110 c++  c  gcc  ld  strip 

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