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

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

8
Змінне розміщення декларації в С
Я довго думав, що в C всі змінні повинні бути оголошені на початку функції. Я знаю, що в C99 правила такі ж, як у C ++, але які правила змінного розміщення декларації для C89 / ANSI C? Наступний код успішно компілюється з gcc -std=c89та gcc -ansi: #include <stdio.h> int main() …
129 c  declaration  c89 

6
Яким повинен бути буфер мого recv при виклику recv у бібліотеці сокетів
У мене є кілька запитань щодо бібліотеки сокетів у C. Ось фрагмент коду, на який я звернуся у своїх запитаннях. char recv_buffer[3000]; recv(socket, recv_buffer, 3000, 0); Як вирішити, наскільки великим зробити recv_buffer? Я використовую 3000, але це довільно. що станеться, якщо recv()отримає пакет, більший за мій буфер? як я можу …
129 c  sockets  buffer  recv 

6
Чому переповнення цілого числа на x86 з GCC викликає нескінченний цикл?
Наступний код переходить у нескінченний цикл на GCC: #include <iostream> using namespace std; int main(){ int i = 0x10000000; int c = 0; do{ c++; i += i; cout << i << endl; }while (i > 0); cout << c << endl; return 0; } Тож ось угода: Переповнення підписаного …
129 c++  c  gcc  x86  undefined-behavior 

15
Поняття недійсного покажчика в програмуванні на С
Чи можна знецінити пустоту покажчика без кастингу типу на мові програмування C? Крім того, чи є якийсь спосіб узагальнення функції, яка може отримати вказівник і зберегти його в недійсному покажчику, і за допомогою цього вказівника пустоти ми можемо зробити узагальнену функцію? наприклад: void abc(void *a, int b) { if(b==1) printf("%d",*(int*)a); …
129 c  void-pointers 

11
Як ви дозволяєте вводити пробіли за допомогою scanf?
Використовуючи наступний код: char *name = malloc(sizeof(char) + 256); printf("What is your name? "); scanf("%s", name); printf("Hello %s. Nice to meet you.\n", name); Користувач може ввести своє ім'я, але коли він вводить ім'я з пробілом Lucas Aardvark , scanf()просто відсікає все після Lucas. Як зробити scanf()пропуски
129 c  string  printf  scanf  whitespace 

9
Коли і чому компілятор ініціалізує пам'ять до 0xCD, 0xDD і т.д. на malloc / free / new / delete?
Я знаю, що компілятор іноді ініціалізує пам'ять з певними шаблонами, такими як 0xCDі 0xDD. Я хочу знати, коли і чому це відбувається. Коли Чи використовується ця специфіка для компілятора? Є malloc/newі free/deleteроботу таким же чином , щодо цього? Це конкретна платформа? Чи відбудеться це в інших операційних системах, таких як …

3
Як виводиться програма "C89" нижче при компіляції в режимі C89 та "C99" при компіляції в режимі C99?
Я знайшов цю програму C в Інтернеті: #include <stdio.h> int main(){ printf("C%d\n",(int)(90-(-4.5//**/ -4.5))); return 0; } Цікавою цією програмою є те, що коли вона компілюється та працює у режимі C89, вона друкує, C89а коли вона компілюється та працює у режимі C99, вона друкує C99. Але я не в змозі зрозуміти, …
128 c  printf  comments  c99  c89 

12
Чи можливо компілювати Python для машинного коду?
Наскільки можливим буде компілювати Python (можливо, через проміжне представлення C) у машинний код? Імовірно, знадобиться посилання на бібліотеку виконання Python, і будь-які частини стандартної бібліотеки Python, які були самі Python, також повинні бути складені (і пов'язані з ними). Крім того, вам потрібно було б поєднати інтерпретатор Python, якщо ви хочете …
128 python  c  linker  compilation 

30
Як перетворити змінну типу enum у рядок?
Як зробити printf, щоб відобразити значення змінних, які мають перелік? Наприклад: typedef enum {Linux, Apple, Windows} OS_type; OS_type myOS = Linux; і мені потрібно щось подібне printenum(OS_type, "My OS is %s", myOS); який повинен показувати рядок "Linux", а не ціле число. Я думаю, спочатку я повинен створити масив рядків з …
128 c++  c  preprocessor  ansi-c 

10
Вирази вказівника: * ptr ++, * ++ ptr та ++ * ptr
Нещодавно я стикався з цією проблемою, яку я не в змозі зрозуміти сам. Що дійсно означають ці три вирази ? *ptr++ *++ptr ++*ptr Я спробував Річі. Але, на жаль, не зміг слідкувати за тим, що він розповів про ці 3 операції. Я знаю, що всі вони виконуються для збільшення покажчика …
128 c++  c  pointers  increment 

7
Що станеться, якщо я визначу масив розміром 0 у C / C ++?
Цікаво, що насправді відбувається, якщо я визначу масив нульової довжини int array[0];в коді? GCC взагалі не скаржиться. Зразок програми #include <stdio.h> int main() { int arr[0]; return 0; } Уточнення Я насправді намагаюся з’ясувати, чи ініціалізовані таким чином масиви нульової довжини, замість того, щоб вказувати, як змінна довжина в коментарях …
127 c++  c  arrays 

3
Чи дійсні паралельні дзвінки для відправлення / повторної передачі в одному сокеті?
Чи можемо ми зателефонувати надсилати з одного потоку та рев. З іншого на той же сокет? Чи можемо ми викликати кілька відправлень паралельно з різних потоків одного і того ж сокета? Я знаю, що хороший дизайн повинен уникати цього, але мені не ясно, як будуть поводитися ці системні API. Я …
127 c  networking  sockets 

8
Чи є спосіб вказати, скільки символів рядка слід роздрукувати за допомогою printf ()?
Чи є спосіб вказати, скільки символів рядка слід роздрукувати (подібно до десяткових знаків у ints)? printf ("Here are the first 8 chars: %s\n", "A string that is more than 8 chars"); Хочеться, щоб він надрукував: Here are the first 8 chars: A string
127 c++  c  printf 


5
Python (і API Python C): __new__ проти __init__
Питання, яке я збираюся задати, здається, є дублікатом використання Python __new__ та __init__? , Але незалежно від того , що до цих пір незрозуміло мені саме те , що практична різниця між __new__і __init__є. Перш ніж ви поспішите сказати мені, що __new__для створення об'єктів і __init__для ініціалізації об'єктів, дозвольте мені …
126 python  c  python-c-api 

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