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

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

2
unix доменної розетки VS з ім'ям труб?
Подивившись на Unix з назвою socket, і я подумав, що вони названі трубами. Я подивився на назви труб і не побачив великої різниці. Я бачив, що вони були ініціалізовані по-різному, але це єдине, що я помічаю. Обидва використовують функцію запису / читання на C і працюють так само AFAIK. У …
122 c  linux 

3
Чи потрібно використовувати if (0), щоб пропустити регістр у комутаторі, який повинен працювати?
У мене ситуація, коли я б хотів, щоб у двох випадках у операторі перемикання C ++ обидва переходили до третього випадку. Зокрема, друга справа потрапила б до третьої справи, а перша справа також потрапила б до третьої справи, не проходячи через другу справу. У мене була німа ідея, спробував, і …

8
Як саме працює хвоста рекурсія?
Я майже розумію, як працює хвостова рекурсія та різниця між нею і нормальною рекурсією. Я тільки не розумію, чому йому не потрібен стек, щоб запам'ятати його зворотну адресу. // tail recursion int fac_times (int n, int acc) { if (n == 0) return acc; else return fac_times(n - 1, acc …

13
Знаходження дублікатів у просторі O (n) та O (1)
Введення: Дано масив з n елементів, який містить елементи від 0 до n-1, причому будь-яке з цих чисел з’являється будь-яку кількість разів. Мета: знайти ці повторювані числа в O (n) та використовувати лише постійний простір пам'яті. Наприклад, нехай n буде 7, а масив - {1, 2, 3, 1, 3, 0, …
121 c++  c  algorithm 

23
Що належить до навчального інструменту для демонстрації необґрунтованих припущень, які люди висловлюють на C / C ++?
Я хотів би підготувати невеликий навчальний інструмент для ПЗ, який повинен допомогти початківцям (і проміжним) програмістам розпізнати та оскаржити свої необґрунтовані припущення на C, C ++ та їх платформах. Приклади: "цілі числа обгортаються" "у всіх є ASCII" "Я можу зберігати покажчик функції у порожнечі *" Я подумав, що невелика тестова …

17
Який сенс малок (0)?
Я щойно побачив цей код: artist = (char *) malloc(0); ... і мені було цікаво, чому б це зробити?
121 c  malloc 

21
Чому для нульового вказівника використовується нульова адреса?
У C (або C ++ для цього питання) вказівники є особливими, якщо вони мають значення нуля: мені рекомендується встановлювати покажчики в нуль після звільнення їх пам'яті, оскільки це означає, що звільнення вказівника знову не небезпечно; коли я дзвоню malloc, він повертає вказівник зі значенням нуль, якщо він не може отримати …
121 c++  c  memory  pointers 

6
socket connect () vs bind ()
Обидві connect()і bind()системні виклики «асоціювати» сокет дескриптор файлу на адресу (зазвичай це IP / порт комбінації). Їхні прототипи такі: int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); і int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); Яка різниця між двома дзвінками? Коли слід використовувати connect()і коли bind()? Зокрема, …


5
Чому C ++ 11 не підтримує призначені списки ініціалізаторів як C99? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 2 роки тому . Удосконаліть це питання Поміркуйте: struct Person { int height; int weight; int age; }; …
121 c++  c  c++11  initialization  c99 


2
Що означає для структури даних "нав'язливою"?
Я бачив термін нав'язливий, який використовується для опису структур даних, таких як списки та стеки, але що це означає? Чи можете ви навести приклад коду нав'язливої ​​структури даних, і чим вона відрізняється від ненав'язливої? Крім того, навіщо робити це нав'язливим (або, не настирливим)? Які переваги? Які недоліки?

6
Чому потрібен сегмент .bss?
Що я знаю, це те, що глобальні та статичні змінні зберігаються у .dataсегменті, а неініціалізовані дані - у .bssсегменті. Я не розумію, чому ми виділили сегмент для неініціалізованих змінних? Якщо неініціалізована змінна має значення, призначене під час виконання, чи існує змінна ще лише у .bssсегменті? У наступній програмі aзнаходиться в …

7
У ролях до int vs floor
Чи є різниця між цими: float foo1 = (int)(bar / 3.0); float foo2 = floor(bar / 3.0); Як я розумію, обидва випадки мають однаковий результат. Чи є різниця в складеному коді?
120 c++  c  floating-point 

13
друкувати стек виклику в C або C ++
Чи є спосіб скинути стек викликів у запущеному процесі на C або C ++ кожен раз, коли викликається певна функція? Я маю на увазі щось таке: void foo() { print_stack_trace(); // foo's body return } Де print_stack_traceпрацює аналогічно callerв Perl. Або щось подібне: int main (void) { // will print …
120 c++  c  linux  callstack 

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