随笔分类 - c/c++
摘要:参考:【C++】define 和typedef 的详细区别define与typedef区别与联系#define(宏定义)只是简单的字符串代换(原地扩展),它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了。typedef是为了增加可读性而为标识符另起的新名称(仅仅只是个别名),它的新名字具有一定的封装性,以致于新命名的标识符具有更易定义变量的功能,它是语言编译过程的一部分,但它并不实际分配内存空间。一般都遵循#define定义“可读”的常量以及一些宏语句的任务,而typedef则常用来定义关键字、冗长的类型的别名。typedef是语句( 以';'结尾),而#de
阅读全文
摘要:在宏定义中经常会用到#和##1、单井号(#):把传递过来的参数当成字符串进行替代如下示例:程序代码#define display(name) printf(""#name"")int main() {display(name);}输出:name2、双井号(##)是宏定义中的连接符,就是把前后两个参数连接在以起,这个在实际应用中一般碰不到,不排除考试和面试中出现 。#include#define link(a,b) a##busingnamespace std;int main(){int x=2,y=3,xy=10; cout<<x<&
阅读全文
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 - 程序结束后由系统释放。 4、文字常量区 —常量字符
阅读全文

浙公网安备 33010602011771号