LINUX.ORG.RU

История изменений

Исправление 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;

Я промолчу, когда-то сам поймешь.