C语言中没有函数重载的概念
C语言中没有函数重载的概念!!
C语言中没有函数重载的概念!!
今天MSN群中有个人问我C语言的问题:
(两个函数实现的功能相同
但是它们参数的个数不同
我用一个函数把这个两个函数封起来
我这个函数的参数怎么设置?
指点一下
谢啦
我这个函数通过宏来区分那两个函数)
回答的时候,我提到了函数的重载,还强调C语言也有函数的重载。囧了。上网一查才发现C中没有函数的重载的概念,而是C++中才有。由于编译器的问题,C中不允许函数同名。。但是C++实现了在编译的时候的变化。
至于实现上面那个人问的问题,相当于
相关文档:
#include<stdio.h>
#define N 8
void input(int n,int p[N][N])
{
int i,j;
for(i=0;i<n;i++)
{
printf("please input the %d line:\n",i+1);
for(j=0;j<n;j++)
{
scanf("%d",&p[i][j]);
}
}
}
void output(int n,int p[N][N])
......
1. 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回指向字符的指针的函数的指针的数组?
这个问题至少有以下3 种答案:
1. char *(*(*a[N])())();
2. 用typedef 逐步完成声明:
typedef char *pc; /* 字符指针*/
typedef pc fpc(); /* 返回字符指针的函数*/
typedef fpc *pfpc; /* 上面函数的指针*/ ......
今天是5月的最后一天了,2010年的5月,倒霉的一个月终于要过去了。今天抽空我又读完了第三章,顺便做下笔记。
这一章的题目叫做---语义“陷阱”
程序也有可能表面看上去是一个意思,实际上的意思却相去甚远。
对于数组:
C语言中只有一维数组, ......
void mystery(int n)
{
n += 5;
n /= 10;
printf(" :%s\n","***********" + 10 -n);
}
当一个字符串常量位于一个表达式中时,它的值是一个指针常量。编译器把这些指定字符的一份拷贝存储在内存的某个位置,并存储一个指向第1个字符的指针。但是,当数组名用于表达式中时,他们的值也是一个指针常量 ......
这三章主要讲了C语言的链接、库函数、预处理。还是有点晦涩难懂啊。
一个C程序是可以有多个部分组成的,但是编译器每次只能编译一个文件,找出其中的错误。某些C语言实现提供了一个称为lint的程序,可以捕获大量的此类错误。连接器一般是与编译器分离的,编译器是把C程序“翻译”成对连 ......