namespacs dog//命名空间为dog { voidprint(int a) { printf(" %d \n", a); } int a; int b;//可定义变量,也可定义函数 namespace big_dog//可以嵌套 { voidfun1(int a) { printf("%d\n", a); int a; int b; } } }
namespace dog//可以分段写,最后会整合在一起 { int c; int d; voidfun2() { printf("hehe\n"); } }
voidfun1(int a = 1, int b = 2, int c = 3)//全缺省 { std::cout << a << b << c << std::endl; } voidfun2(int a, int b = 2, int c = 3)//半缺省,必须从右到左连续无间断 { std::cout << a << b << c << std::endl; } voidfun3(int a = 1, int b = 2, int c)//非法 voidfun4(int a = 1, int b, int c = 3)//非法 //错误写法,缺省值只能出现在声明或定义的地方,不能同时出现 voidfun5(int a = 1, int b = 2, int c = 3);//声明 voidfun5(int a = 100, int b = 200, int c = 300)//定义 { std::cout << a << b << c << std::endl; }
intAdd(int a, int b) //C编译器均为:_Add //g++编译器:_Z3Addii floatAdd(float a, float b) //_Z3Addff intAdd(int a, int b, int c) //_Z3Addiii intAdd(char a, int b) //_Z3Addci intAdd(int a, char b) //_Z3Addic
extern “C”
按照C语言规则编译
1 2 3 4
extern"C"{ intsub(int a, int b); intmul(int a, int b); }