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

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

11
#прагма ефект упаковки
Мені було цікаво, чи може хтось пояснити мені, що #pragma packробить оператор препроцесора, і що ще важливіше, чому хтось хоче його використовувати? Я перевірив сторінку MSDN , яка запропонувала деяке розуміння, але я сподівався почути більше від людей із досвідом. Я бачив це в коді раніше, хоча, здається, більше не …

8
Різниця між fprintf, printf та sprintf?
Може хто - небудь пояснити на простому англійською мовою про відмінності між printf, fprintfі sprintfз прикладами? У якому потоці він знаходиться? Я дуже заплутався між трьома з них, читаючи про "Обробку файлів на С".
233 c  io  stream  printf 

8
uint8_t vs неподписаний знак
Яка перевага використання uint8_tнад unsigned charC? Я знаю, що майже в кожній системі uint8_tє просто typedef для unsigned char, так навіщо це використовувати?
231 c  typedef 

30
Чи витоки пам’яті коли-небудь в порядку? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 2 роки тому . Удосконаліть це питання Чи допустимо коли-небудь витік пам'яті у вашому додатку C або C …
231 c++  c  memory-leaks 

11
Чому функція get настільки небезпечна, що її не слід використовувати?
Коли я намагаюся скомпілювати код C, який використовує gets()функцію з GCC, я отримую це попередження: (.text + 0x34): попередження: функція `get 'є небезпечною і не повинна використовуватися. Я пам’ятаю, це має щось спільне із захистом та безпекою стеків, але я не впевнений, чому саме. Як я можу видалити це попередження …
229 c  fgets  buffer-overflow  gets 

5
Чому GCC використовує множення на дивне число при здійсненні цілого поділу?
Я читав про divі mulскладальних операціях, і я вирішив , щоб побачити їх у дії, написавши просту програму в C: Розділення файлів.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } А потім генерувати код мови збірки за …



8
Що таке базовий покажчик та покажчик стека? На що вони вказують?
Використовуючи цей приклад із вікіпедії, в якій DrawSquare () викликає DrawLine (), (Зверніть увагу, що ця діаграма має високі адреси внизу та низькі адреси вгорі.) Хтось міг би мені пояснити, що ebpі що espв цьому контексті? З того, що я бачу, я б сказав, що вказівник стека вказує завжди на …
225 c++  c  assembly  x86 

10
Наскільки небезпечним є доступ до масиву поза межами?
Наскільки небезпечним є доступ до масиву поза його межами (в С)? Іноді може траплятися, що я читаю з-за масиву (тепер я розумію, що потім отримую доступ до пам’яті, яка використовується в деяких інших частинах моєї програми або навіть поза цим) або намагаюся встановити значення індексу поза масивом. Програма іноді виходить …
221 c  arrays  memory 



9
Чи потрібно явно обробляти негативні числа або нуль при підсумовуванні цифр у квадраті?
Нещодавно у мене в класі був тест. Однією з проблем була наступна: Давши число n , запишіть функцію в C / C ++, яка повертає суму цифр числа у квадрат . (Важливо наступне). Діапазон з п є [- (10 ^ 7), 10 ^ 7]. Приклад: Якщо n = 123, ваша …
220 c 

9
Як відключити попередження GCC для кількох рядків коду
У Visual C ++ можливе використання #pragma warning (disable: ...). Також я виявив, що в GCC ви можете перекрити прапори компілятора файлів . Як я можу це зробити для "наступного рядка" або за допомогою семантики push / pop навколо областей коду за допомогою GCC?

11
C fopen vs open
Чи є якась причина (крім синтаксичної), яку ви хочете використовувати FILE *fdopen(int fd, const char *mode); або FILE *fopen(const char *path, const char *mode); замість int open(const char *pathname, int flags, mode_t mode); при використанні C в середовищі Linux?
219 c  linux  unix  file-io  fopen 

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