В чем разница между следующими двумя декларациями:неоднозначные заявления
1. int foo(int);
2. int foo(int());
Я не уверен, если оба заявления эквивалентны. Что делает (2)
отличным от (1)
?
В чем разница между следующими двумя декларациями:неоднозначные заявления
1. int foo(int);
2. int foo(int());
Я не уверен, если оба заявления эквивалентны. Что делает (2)
отличным от (1)
?
int foo(int);
является объявление функции принимает целое число в качестве аргумента и возвращает целое число, а
int foo(int());
объявляет функцию не берет в качестве аргумента «указатель на функцию, возвращающую int
и принимая {никаких аргументов [в C++] и неопределенное количество аргументов [в C]} "и возвращает целое число.
(2)
эквивалентно int foo(int (*pf)())
и int foo(int f())
не принимая никаких аргументов? Я считаю, вы подразумеваете принятие неопределенных, но не вариативных аргументов. '(void)' - это способ указать «без аргументов». –
@R Я верю, что это только C, а не C++ – Tom
@R: Извините, я пропустил это. Добавлено в мой пост. –
Отъезд HTTP: //cdecl.org ... это будет полезно ... – liaK