Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

identifier

54K
11 ноября 2009 года
Michael_
2 / / 11.11.2009
Собственно не так давно начал программировать в lunix, есть программка которая ругается на строчку:
 
Код:
s-proc.c:29: ошибка: expected identifier or ‘(’ before numeric constant

 
Код:
int main(int argc,char **argv) {
 FILE * fp;
 struct stat sbuf;
 void *code, (*fptr)(void);
[COLOR="Red"][SIZE="2"] int arg, i , 1;[/SIZE][/COLOR]
 int m = 15;
 long flen;

проблема с объявляемой переменой, а вот почему компилятор ругаеться понять не могу, в чем может быть проблема?
linux mint
GNU GCC
43K
11 ноября 2009 года
loki231
76 / / 27.09.2009
Если повнимательней приглядеться, то становится понятно, что это не l (Буква Эль), а цифра 1, тот самый нумерик констант, о котором говорит компилятор в сообщении об ошибке.
Рекомендуется использовать какой-нибудь другой шрифт, где I,l и 1 не выглядят как близнецы.
54K
11 ноября 2009 года
Michael_
2 / / 11.11.2009
Цитата: loki231
Если повнимательней приглядеться, то становится понятно, что это не l (Буква Эль), а цифра 1, тот самый нумерик констант, о котором говорит компилятор в сообщении об ошибке.
Рекомендуется использовать какой-нибудь другой шрифт, где I,l и 1 не выглядят как близнецы.


Да я просмотрел.
Тут еще ругает эту строчку

 
Код:
flen = (long)sbuf st_size;


Цитата:
s-proc.c:35: ошибка: агрегатное значение вместо ожидаемого целого
s-proc.c:35: ошибка: ‘st_size’ не описан (первое использование в этой функции)
s-proc.c:35: ошибка: (Сообщение о неописанном идентификаторе выдается один раз
s-proc.c:35: ошибка: для каждой функции, в которой он используется.)


Кусок функции main:

Код:
int main(int argc,char **argv) {
 FILE * fp;
 struct stat sbuf;
 void *code, (*fptr)(void);
 int arg, i , l;
 int m = 15;
 long flen;

 if(argc <3) usage(argv[0]);
 if(stat(argv[2], &sbuf)) barf("failed to stat file"),
[COLOR="Red"] flen = (long)sbuf st_size,[/COLOR]
 if('(code = malloc(flen))) barf("failed to grab relquired memory"),
 if('(fp = fopen (argv[2], "rb"))) barf("faled to open file");
 if(fread(code, 1, flen, fp) = flen) barf("failed to slurp file"),
 if(fclose(fp))barf("failed to close file");

Вроде бы нет "агрегатного значения", а с st_size вообще непонятно.
260
11 ноября 2009 года
Ramon
1.1K / / 16.08.2003
Здесь проблема не в
Цитата:
не так давно начал программировать в lunix

, а скорее в незнании синтаксиса языка, а по сему RTFM.

43K
11 ноября 2009 года
loki231
76 / / 27.09.2009
А что означает строка
 
Код:
flen = (long)sbuf st_size


Аа.. Понятно. Точку пропустил.

 
Код:
flen=sbuf.st_size;


А вообще-то странно это всё.. Подозрительно даже. :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог