基础:C语言j函数规范写法
通过一个实例来说明一下C语言函数的规范写法,看下面的例子:
ANSI: int main(int argc, char *argv[]) { ... } #include <stdio.h> int argc; char *argv[2]; int main(argc,argv) { FILE *fp; int i; fp=fopen(argv[1],"rb"); if(fp==NULL) puts("File open error"); while(!feof(fp)) putchar(fgetc(fp));
printf("\n"); i=fclose(fp); if(i==0) printf("O,K"); else puts("File close error");
} |
这个程序是网上一个教程中的,居然写的大有问题,不标准,所以会出现问题。 在碰到钉子之后,发帖子求教。自己改了方式写成
#include <stdio.h>
int main() { FILE *fp; char filename[20]; pfile(fp,filename); }
int pfile(FILE *fp,char filename[]) {
fp=fopen(gets(filename),"rb"); while(!feof(fp)) putchar(fgetc(fp)); } |
倒是实现了想法。
后来了解到,最开始摘抄的程序不标准,应该改成 int main(int argc,char *argv[]),这跟我自己后来写的程序类似,通过调用函数,只不过只是调用自己本身而已,所以行参,也要写完整,变量类型。 难怪要说error: subscripted value is neither array nor pointer