![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
messiahltj
移动互联网新兵向老兵们致敬
展开
-
不常用的define
#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #xx##y表示什么?表示x连接y,举例说:int n = Conn(123,456); 结果就是n=123456;char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";怎么样,很神奇吧原创 2014-06-11 14:45:20 · 403 阅读 · 0 评论 -
函数默认参数
在C++中,可以为参数指定默认值,C语言是不支持默认参数的,Java也不支持!!!默认参数的语法与使用:(1)在函数声明或定义时,直接对参数赋值。这就是默认参数;(2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。注意事项:(1)函数默认值只能赋值一次,或者是在声明中,或者是在定义中,如下所示/*正确*/ #include iostream> int f(i转载 2014-07-23 10:22:33 · 471 阅读 · 0 评论 -
深入研究boost::shared_ptr
先挖个坑。。。shared_ptr顶多会造成内存泄露,但是不会造成ye原创 2014-06-12 23:40:32 · 434 阅读 · 0 评论 -
extern C的作用详解
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。 这个功能十分有用处转载 2014-06-12 11:40:29 · 309 阅读 · 0 评论 -
c/c++关键字typedef用法
[C++语法] 关键字typedef用法(转)转载 2014-06-12 22:51:18 · 359 阅读 · 0 评论 -
c++ explicit关键字
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但是有转载 2014-06-12 23:06:26 · 345 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而转载 2014-06-12 11:26:56 · 325 阅读 · 0 评论 -
C & C++的编译过程详解
C/C++编译过程C/C++编译过程主要分为4个过程1) 编译预处理2) 编译、优化阶段3) 汇编过程4) 链接程序一、编译预处理(1)宏定义指令,如#define Name TokenString,#undef等。 对于前一个伪指令,预编译所要做的是将程序中的所有Name用TokenString替换,但作为字符串常量的 Name则不被替换。对于后者转载 2014-07-30 11:43:26 · 383 阅读 · 0 评论