История изменений
Исправление mtk, (текущая версия) :
const char FILE_NAME[] = "test.txt";
Зачем делать const char[] в хедере? В каждый сорс пойдет по глобальному екземпляру FILE_NAME, при линковке получится error: multiple definition of FILE_NAME.
int print_help( char * prog_name )
Вот как раз prog_name имеет смысл делать глобальной, и перед парсингом argv[] делать prog_name=argv[0]
.
Кстати, где ты увидел такой стиль: f( void )
. Надо f(void)
, лишние пробелы там ни к чему.
Исправление mtk, :
const char FILE_NAME[] = "test.txt";
Зачем делать const char[] в хедере? В каждый сорс пойдет по глобальному екземпляру FILE_NAME, при линковке получится error: multiple definition of FILE_NAME.
int print_help( char * prog_name )
Вот как раз prog_name имеет смысл делать глобальной, и перед парсингом argv[] делать prog_name=argv[0]
.
int fopen_error( void );
Зачем это? Лучше уж передавать имя файла параметром, тогда будет какая-то универсальнось в функции. Кстати, где ты увидел такой стиль: f( void )
. Надо f(void)
, лишние пробелы там ни к чему.
return 0;
return 1;
return 2;
return 3;
Я промолчу, когда-то сам поймешь.
Исходная версия mtk, :
const char FILE_NAME[] = "test.txt";
Зачем делать const char[] в хедере? В каждый сорс пойдет по глобальному екземпляру FILE_NAME, при линковке получится error: multile definition of FILE_NAME.
int print_help( char * prog_name )
Вот как раз prog_name имеет смысл делать глобальной, и перед парсингом argvхъ делать prog_name=argv[0]
.
int fopen_error( void );
Зачем это? Лучше уж передавать имя файла параметром, тогда будет какая-то универсальнось в функции. Кстати, где ты увидел такой стиль: f( void )
. Надо f(void)
, лишние пробелы там ни к чему.
return 0;
return 1;
return 2;
return 3;
Я промолчу, когда-то сам поймешь.