файла Я использую в моем проекте есть много декларации в этом стиле:C++ необъявленных переменных
static VALUE do_checksum(int, VALUE*, uLong (*)(uLong, const Bytef*, uInt));
...
static VALUE
do_checksum(argc, argv, func)
int argc;
VALUE *argv;
uLong (*func)(uLong, const Bytef*, uInt);
{
...
}
В то время как я никогда не писал код, таким образом, сам, я уверен, что это правильно. Однако мой компилятор возвращает
error: 'VALUE do_checksum' redeclared as different kind of symbol
error: 'argc' was not declared in this scope
Что здесь не так?
Windows 7
Code :: Blocks ж/MinGW
C++ не поддерживает C декларации параметров в старом стиле , –
@JonathanPotter: это * старомодные декларации параметров C. Современный C все еще разрешает их, но с 1989 года они официально устарели. –
См. Http://stackoverflow.com/questions/1585390/c-function-syntax-parameter-types-declared-after-parameter-list для обсуждения , –