Все вопросы: [c89]

18 вопросов

похожие теги:
81
голосов
10ответов
176972 просмотров

Why should you use strncpy instead of strcpy?

Edit: I've added the source for the example. I came across this example: 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("destinatio...

7
голосов
6ответов
8806 просмотров

What techniques/strategies do people use for building objects in C (not C++)?

I am especially interested in objects meant to be used from within C, as opposed to implementations of objects that form the core of interpreted languages such as python.

2
голосов
3ответов
1104 просмотров

Увеличьте указатель структуры на половину размера структуры

У меня есть интересная проблема, которую нужно решить, и я не вижу подходящего способа ее решить. У меня есть две базовые структуры данных, представляющие сложный граф, объявленный примерно так: typedef struct _node_t node_t; typedef struct _graph_t graph_t; struct { /* Data fields om...

8
голосов
3ответов
5067 просмотров

Возврат курсора терминала в начало строки с включенным переносом

Я пишу фильтр (в конвейере, предназначенном для вывода на терминал), которому иногда требуется «перезаписать» только что появившуюся строку. Он работает, посимвольно передавая stdin на stdout, пока не будет достигнуто \n, а затем вызывает особое поведение. Моя проблема в том, как вернуться к нач...

1
голосов
5ответов
859 просмотров

Распределение данных с помощью функции (ANSI C)

Я хотел бы знать, как я могу выделить данные с помощью функции, и после того, как функция будет возвращена, данные по-прежнему распределяются. Это как для базовых типов (int, char **), так и для пользовательских типов. Ниже приведены два набора кода. У обоих есть распределение внутри функции, хо...

2
голосов
3ответов
982 просмотров

проблемы с использованием ключа -ansi в MinGW 3.4.5

Я читал о флагах, используемых в gcc, и прочитал рекомендацию использовать gcc -ansi -pedantic -Wall file1 [file2 [file3...]] -o output. Ради качества моего кода, чтобы он оставался стандартным и получал все предупреждения об этом. Ну, насчет компиляции с -ansi ... Если я включу <stdlib.h&...

11
голосов
3ответов
5530 просмотров

Способ преобразования байтового потока в поток пакетов в C89 на встроенном устройстве

Я работаю со встроенным устройством, подключенным к ПК с помощью RS232 (RS232 через USB). Я думаю о разработке собственного протокола: <MAGIC><LENGTH><BINARY DATA><CRC> но я не хочу изобретать велосипед. Обратите внимание на следующее: Я имею в виду устройст...

81
голосов
31ответов
43636 просмотров

Есть ли причина использовать C вместо C ++ для встраиваемой разработки?

Вопрос У меня есть два компилятора на моем оборудовании: C ++ и C89 Я думаю об использовании C ++ с классами, но без полиморфизма (чтобы избежать vtables). Основные причины, по которым я хочу использовать C ++: Я предпочитаю использовать «встроенные» функции вместо определений макросов...

22
голосов
2ответов
4457 просмотров

Рекурсивное объявление указателя на функцию в C

Я хотел бы объявить функцию, которая возвращает указатель на функцию того же типа. Я хотел бы использовать его для реализации конечных автоматов, подобных приведенному ниже: typedef event_handler_t (*event_handler_t)(event_t*); // compilation error event_handler_t state2(event_t* e); even...

0
голосов
2ответов
318 просмотров

Как создать решение VS для существующего проекта c, чтобы VS автоматически выбирал новые файлы?

Я хочу перенести встроенное приложение на x86 для создания эмулятора. Мы решили попробовать VS2008, но я не уверен, как заставить vs понять нашу существующую структуру каталогов: arch / arch / hcs08 - реализация HAL arch / include - публичный интерфейс HAL arch / x86 - здесь должен н...

0
голосов
1ответов
1231 просмотров

Лучший способ перенаправить объявление структур typedef'd в C89?

struct SomeStruct; typedef struct SomeStruct SomeStruct; Вышеуказанное работает, но есть ли более простой (или лучший) способ?

18
голосов
4ответов
13453 просмотров

Почему gcc не может найти интерфейс random (), когда установлено -std = c99?

Я делаю "#include <stdlib.h>" вверху источника. Пример составления: /usr/bin/colorgcc -std=c99 -fgnu89-inline -g -Wall -I/usr/include -I./ -I../ -I../../ -I../../../ -I../../../../ -O3 -o f8 f8.c In file included from f8.c:7: ctype-cmp.c: In function ‘randomized’: ctype-cmp.c:48...

0
голосов
6ответов
1195 просмотров

Границы пустых указателей в ANSI C89 / ISO C90

Есть ли способ переносимо определить верхнюю и нижнюю границу значений указателя void в ANSI C89 / ISO C90? (в настоящее время у меня нет копии стандарта с собой (у меня есть один дома). Конечно, если значения void-pointer гарантированно беззнаковые, эта задача тривиальна (с помощью sizeof (vo...

10
голосов
3ответов
1073 просмотров

Возвращает ли floor () что-то точно представимое?

В C89 floor () возвращает двойное значение. Гарантировано ли следующее сработает? double d = floor(3.0 + 0.5); int x = (int) d; assert(x == 3); Меня беспокоит то, что результат floor не может быть точно представлен в IEEE 754. Таким образом, d получает что-то вроде 2,99999, а x в итоге ст...

35
голосов
6ответов
22514 просмотров

Тип для представления байта в ANSI (C89 / 90) C?

Существует ли метод подачи жалоб на стандарты для представления байта в ANSI (C89 / 90) C? Я знаю, что чаще всего char бывает байтом, но я понимаю, что это не гарантируется. Кроме того, в стандарте C99 есть stdint.h, но что использовалось до C99? Меня интересуют как 8 бит, так и «байт» (sizeo...

47
голосов
6ответов
10877 просмотров

Требуются ли прототипы для всех функций в C89, C90 или C99?

Чтобы быть действительно совместимыми со стандартами, все функции в C (кроме main) должны иметь прототип, даже если они используются только после их определения в той же единице перевода?

130
голосов
8ответов
85903 просмотров

Размещение объявления переменной в C

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

44
голосов
11ответов
37699 просмотров

Каковы основные различия между ANSI C и K&R C?

В статье Википедии о ANSI C говорится: Одной из целей процесса стандартизации ANSI C было создание расширенного набора K&R C (первого опубликованного стандарта), включающего многие из неофициальных функций, представленных впоследствии. Однако комитет по стандартам также включил неско...