identifier
Код:
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;
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
Рекомендуется использовать какой-нибудь другой шрифт, где I,l и 1 не выглядят как близнецы.
Цитата: loki231
Если повнимательней приглядеться, то становится понятно, что это не l (Буква Эль), а цифра 1, тот самый нумерик констант, о котором говорит компилятор в сообщении об ошибке.
Рекомендуется использовать какой-нибудь другой шрифт, где I,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: ошибка: для каждой функции, в которой он используется.)
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");
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 вообще непонятно.
Цитата:
не так давно начал программировать в lunix
, а скорее в незнании синтаксиса языка, а по сему RTFM.
Код:
flen = (long)sbuf st_size
Аа.. Понятно. Точку пропустил.
Код:
flen=sbuf.st_size;
А вообще-то странно это всё.. Подозрительно даже. :)