#include <iostream> using namespace std; int func(int c) { cout<<"int func(int c)"<<endl; } int func(char c) { cout<<"int func(char c)"<<endl; } //函数的重载就是函数名相同,根据参数的类型决定调用哪个函数 int main() { int m; char n; f
我们知道在C++中有函数重载这样一个东西,当我们定义了几个功能类似且函数名是一样的函数的时候,只要它的参数列表不同,编译是可以通过的,但是在C中是不可以的. double add(double a, double b) { return a + b; } int add(int a, char b) { return a + b; } char add(char a, char b) { return a + b; } 如果这样写的代码,在C中会报出errorC2371,说是add函数重定义.但
在keil 中 C语言的函数有带参数和不带参数之分. 一般的资料里说fun(void)类型的函数不带参数,所以,keil编译器生成的汇编的调用地址(函数名) 为fun.这没有错.事实上,不管C语言的函数是否带参数,只要函数在调用过程中不用寄存器传递参数,生成的汇调用址(函数名)都是原来的函数名. 比如: #pragma noregparms void fun(unsigned int a,unsigned char b) { unsigned c; c = a + b; re