Добрый день!
Есть вот такой исходник test.c:
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char ** argv )
{
int a;
qwerty();
qwerty( 5 );
qwerty( 1, 2 );
qwerty( -2, -3, -4 );
return( 0 );
}
int qwerty( int a, int b )
{
printf( "a==%d, b==%d, marsian==%d\n", a, b, *(&a+2) );
return( 0 );
}
Вот так вот собираю:
gcc -o test test.с
Вот что получаю при запуске:
a==0, b==134518620, marsian==-1079075352
a==5, b==134518620, marsian==-1079075352
a==1, b==2, marsian==-1079075352
a==-2, b==-3, marsian==-4
Доп. информация:
компилятор - gcc (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7)
ОС - Fedora 10.
Вот непосредственно сам(и) вопрос(ы):
1. Разве не должен компилятор заругаться, встретив необъявленную ранее функцию (qwerty)?
2. В случае двухпроходной компиляции разве не проверяется на соответствие список формальных параметров списку фактических?
С уважением.
PS. Если что-то не то спросил, не пеняйте сильно.
PSS. Плюсовый компилятор ругается:
test.c: In function ‘int main(int, char**)’:
test.c:10: error: ‘qwerty’ was not declared in this scope
Ответ на:
комментарий
от namezys
Ответ на:
комментарий
от namezys
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум математика (2005)
- Форум Флаг для gcc (2009)
- Форум ofstream (2006)
- Форум Warnings при использовании basename () (2004)
- Форум GCC взбесилси? (2018)
- Форум Не удается вывести в терминал кириллицу (2017)
- Форум Простейший вопрос - свои первые строчки на C. Где argv ? (2004)
- Форум что не так в использовании структуры (2008)
- Форум execve (2005)
- Форум Qt: Console (2010)