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

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

29
Тестування покажчиків на валідність (C / C ++)
Чи є спосіб визначити (звичайно, програмно), чи вказаний покажчик є "дійсним"? Перевірити наявність NULL легко, але як щодо таких речей, як 0x00001234? При спробі розблокування цього виду вказівника відбувається виняток / збій. Переважний крос-платформенний метод, але певний для платформи (для Windows та Linux) також є нормальним. Оновлення для роз’яснення: проблема …
91 c++  c  validation  pointers  null 

1
Перетворіть шістнадцяткову інформацію в двійкову за допомогою команди Linux
У мене є цей двійковий файл у моїй системі Linux ... udit@udit-Dabba ~ $ cat file.enc Salted__s�bO��<0�F���Jw!���]�:`C�LKȆ�l За допомогою команди hexdump я бачу її інформацію таким: udit@udit-Dabba ~ $ hexdump -C file.enc 00000000 53 61 6c 74 65 64 5f 5f 1b 73 a1 62 4f 15 be f6 |Salted__.s.bO...| …



11
Чи існує функція копіювання масиву в C / C ++?
Я програміст Java, який вивчає C / C ++. Тому я знаю, що Java має таку функцію, як System.arraycopy (); скопіювати масив. Мені було цікаво, чи є в C або C ++ функція для копіювання масиву. Я зміг знайти реалізацію для копіювання масиву лише за допомогою циклу for, покажчиків тощо. …
91 c++  c  arrays 



1
Що робить ## (подвійний хеш) у директиві препроцесора?
#define DEFINE_STAT(Stat) \ struct FThreadSafeStaticStat<FStat_##Stat> StatPtr_##Stat; Наведений вище рядок взятий з Unreal 4, і я знаю, що міг би задати його на нереальних форумах, але я думаю, що це загальне запитання на C ++, яке вимагає тут. Я розумію, що перший рядок визначає макрос, однак я погано розбираюся в попередніх …

7
що таке непідписаний тип даних?
Я бачив unsignedпару разів цей "безтиповий" тип, але жодного разу не бачив пояснень. Я припускаю, що існує відповідний signedтип. Ось приклад: static unsigned long next = 1; /* RAND_MAX assumed to be 32767 */ int myrand(void) { next = next * 1103515245 + 12345; return((unsigned)(next/65536) % 32768); } void mysrand(unsigned …
91 c  types  unsigned 

8
Чи можна ініціалізувати вказівник C на NULL?
Я писав такі речі char *x=NULL; припускаючи, що char *x=2; створив би charвказівник на адресу 2. Але в підручнику з програмування GNU C сказано, що int *my_int_ptr = 2;ціле число зберігається 2до будь-якої випадкової адреси, my_int_ptrколи воно виділяється. Здається, це означає, що мій власний char *x=NULLприсвоює будь-яке значення NULLприведення charдо …


13
Яких функцій зі стандартної бібліотеки слід (слід) уникати?
Я читав на Stack Overflow, що деякі функції C є "застарілими" або "їх слід уникати". Чи можете ви дати мені кілька прикладів такого роду функцій та причину? Які альтернативи цим функціям існують? Чи можемо ми використовувати їх безпечно - якісь хороші практики?

2
Різниця між <string.h> та <strings.h>
Я помітив, що існує (принаймні в Mac OS X) і &lt;string.h&gt;заголовок, і &lt;strings.h&gt;заголовок. man 3 stringвиявляє, що вони містять різні функції. Чи є для цього якась причина?
90 c  string  header 

2
Що це (( ))?
Під час перегляду вихідного коду компілятора gcc (gcc / c-family / c-pragma.c) я бачу: typedef struct GTY(()) align_stack { int alignment; tree id; struct align_stack * prev; } align_stack; і незалежно від того, що у мене за плечима багато років програмування на С, ці біти: (())для мене поки абсолютно невідомі. …
90 c++  c 

1
Що робить Java простішим для синтаксичного аналізу, ніж C?
Я знайомий з тим, що граматики C та C ++ є контекстно-залежними , і, зокрема, вам потрібен "злом лексера" в C. З іншого боку, у мене таке враження, що ви можете проаналізувати Java лише 2 лексеми перспективи, незважаючи на значну подібність між двома мовами. Що б вам довелося змінити щодо …
90 java  c  parsing  grammar 

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