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

Цей тег призначений для питань щодо міжнародного стандарту ISO 9899: 1990, також відомого як "C89", "C90" або "ANSI C", із змінами та технічними виправленнями (на відміну від переглядів стандарту K&R C, C99, C11 або пізніших стандартів C). ).


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

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 

5
Яка різниця між C, C99, ANSI C і GNU C?
Я розпочав практику програмування в кодефікуванні і був збентежений різницею між C і C99. Що тут означає C? Це C89? Перевірте мови внизу цього подання . Він містить як C, так і C99. Я знайшов в Інтернеті щось, що називається GNU C. Чи існує інший С для систем Linux / …
123 c  gcc  c99  c89  ansi-c 

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
Де можна знайти стандарти C89 / C90 у форматі PDF?
Я шукаю безкоштовну копію стандарту C89 / C90 , але ніде не можу її знайти! Чому так важко його знайти? Стандарти C99 та C11 дуже легко отримати в Інтернеті. Навіть у запитаннях щодо переповнення стека Де я можу знайти поточні стандартні документи C або C ++? та стандарт C, отримання …
87 c  ansi  c89 

10
Чому ви повинні використовувати strncpy замість strcpy?
Редагувати: я додав джерело для прикладу. Я натрапив на такий приклад : char source[MAX] = "123456789"; char source1[MAX] = "123456789"; char destination[MAX] = "abcdefg"; char destination1[MAX] = "abcdefg"; char *return_string; int index = 5; /* This is how strcpy works */ printf("destination is originally = '%s'\n", destination); return_string = strcpy(destination, …

30
Чи є якась причина використовувати C замість C ++ для вбудованої розробки?
Питання У мене є два компілятори на моєму обладнанні C ++ та C89 Я думаю про використання C ++ з класами, але без поліморфізму (щоб уникнути vtables). Основними причинами, якими я хотів би користуватися C ++, є: Я вважаю за краще використовувати “вбудовані” функції замість визначень макросів. Я хотів би …
82 c++  c  embedded  c89 

4
Чи визначено поведінку віднімання двох покажчиків NULL?
Чи визначено різницю двох змінних показників, що не є порожніми (для C99 та / або C ++ 98), якщо вони обидва NULLоцінюються? Наприклад, скажімо, у мене є буферна структура, яка виглядає так: struct buf { char *buf; char *pwrite; char *pread; } ex; Скажімо, ex.bufвказує на масив або якусь помилкову …
78 c++  c  c99  c89 

4
Чому ця функція повертає правильну довжину рядка? (Збільшення покажчика символів)
Це функція, яка рахує кількість символів у рядку: int str_len(const char* s) { int i = 0; while(*(s++)) { i++; } return i; } Чому це повертає правильну довжину? Скажімо, я називаю цю функцію простим рядком "a". Потім sзбільшується в циклі while, тому значення sі iобидва є 0.
12 c  while-loop  strlen  c89 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.