当前位置: 技术问答>linux和unix
gcc 函数可见性问题
来源: 互联网 发布时间:2016-07-01
本文导语: #include #include #include #include #include #include main(int ag,char **avgs){ void handler(int); int length = string_to_int(avgs[2]); int speed = string_to_int(avgs[3]); int fd; char buf[1024]; int c; int row = 10; int col = 0; if((fd=open(avgs[1],O_RDON...
#include
#include
#include
#include
#include
#include
main(int ag,char **avgs){
void handler(int);
int length = string_to_int(avgs[2]);
int speed = string_to_int(avgs[3]);
int fd;
char buf[1024];
int c;
int row = 10;
int col = 0;
if((fd=open(avgs[1],O_RDONLY)) == -1)
perror(avgs[1]);
initscr();
crmode();
noecho();
clear();
move(row,col);
set_ticker(speed);
signal(SIGALRM,handler);
while(1){
c = getch();
if(c == 'q') break;
}
close(fd);
endwin();
return 0;
}
void handler(int signum){
col += length+1;
if(col = COLS){
row += 1;
col = 0;
}
read(fd,buf,length);
move(row,col);
addstr(buf);
refresh();
}
int string_to_int(char *string){
return atoi(string);
}
int set_ticker(int n_msecs){
struct itimerval new_timeset;
long n_sec,n_usecs;
n_sec - n_msecs/1000;
n_usecs = (n_msecs%1000)*1000L;
new_timeset.it_interval.tv_sec = n_sec;
new_timeset.it_interval.tv_usec = n_usecs;
new_timeset.it_value.tv_sec = n_sec;
new_timeset.it_value.tv_usec = n_usecs;
return setitimer(ITIMER_REAL,&new_timeset,NULL);
}
我写的这个程序为什么编译通不过,难道在handler()函数中不可见main()的变量???
高人帮帮忙,以前没遇到过如此问题啊~~
|
当然不可以,把这些函数放到main外面,作为全局变量就可以了。
http://blog.csdn.net/hairetz/archive/2009/04/30/4141043.aspx
可以先看这篇文章,打打基础,。
http://blog.csdn.net/hairetz/archive/2009/04/30/4141043.aspx
可以先看这篇文章,打打基础,。