@Redproxima
Студент технического ВВУЗ'а

Объявление идентификатора #define в прототипе функции в Си (C), можно ли так делать?

Здравствуйте! Есть вопрос: позволительно ли объявлять идентификатор #define в прототипе функции в Си.
Учебник Брайана Кернигана и Денниса Ритчи, второе издание, параграф 1.9 (Символьные массивы). В параграфе рассматривается пример использования функций с передачей ей массивов в роли аргументов. В программе используется директива препроцессора по объялению именованной константы, которая несколькими сточками ниже используется при описании прототипа функции.
#include <stdio.h>

#define MAXLINE 500

int get(char line[], int MAXLINE); // В этой строке линтер жалуется на "ожидаемую )". Линковщик спотыкается  на этом же месте.
void copy(char to[], char from[]);


IDE: QT Creator 4.8.1
Движок: QT 5.12.0
GCC: 5.3.1

Может быть это несоответсвие стандартов С99 и С11? Можно ли как-то сгладить это недоразумение?
У кого какие вообще соображения по этому поводу?
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
myjcom
@myjcom
Олег Филимоненко,
у вас кривой вариант перевода
ОНА?
Б. Керниган, Д. Ритчи "Язык программирования C" Третье издание.
Автор: Б. Керниган, Д. Ритчи (Перевод с английского Вт. С. Штаркмана, под редакцией Вс. С. Штаркмана.)
Год: 1992
Издательство: "Финансы и статистика"
ISBN: 5-7940-0045-7
Тут еще:
5c61ed8cad500947739165.png
в печку ее
...
в оригинале
прототип функции:
int getline(char line[], int maxline);

Правильное издание
5c61ddfb74bf7964476334.png5c61de311e4e4785447824.png
Язык программирования С, 2-е издание.
Год: 2009
Автор: Kernighan B., Ritchie D. / Керниган Б., Ритчи Д.
Издательство: Вильямс
ISBN: 978-5-8459-0891-9

А в самом первом
The C programming language - First Edition
Год издания: 1978
Автор: Kerninghan, Brian W.
Издательство: Bell Telephone Laboratories
ISBN: 0-13-110163-3
Язык: Английский
5c61e83b28570703220686.png5c61e8f0e2cc4890842644.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы