声明、定义、语句

I. 语句

程序的基本组成部分,分可执行语句(定义)和不可执行语句(声明)。

II. 定义

分配存储空间,即具有了存储类型。

III. 声明

告诉编译器这个名字值的类型及宣告该名字的存在性,仅此而已。

IV. gcc实例说明
/* ->表示gcc可以设置断点的地方,即可执行语句 */
static void parse_ctrip_dummy(struct http_conn * hc, struct http_proto_message *response)
{
->char *origin_url = NULL;
->char *ungzipdata = NULL;
->char *content_encoding = NULL;
    int ungziplen;
    tpnstr_t decodedata;
    int decodedlen;
    int iRet;

->bzero(&decodedata, sizeof(decodedata));
...
}
V. c VS c++
  1. int a;//在标C中为声明是不可执行语句而在C++中为定义是可执行语句
  2. extern int a;//为声明是不可执行语句
  3. CWinApp curApp; //对象定义是可执行语句
C++ 定义语句在程序中起着关键作用,以下是不同方面的相关信息: ### 源代码风格与语句规范 C++ 源代码有一定的风格要求,每条语句通常占一行,代码花括号各占一行,函数中的语句相对于花括号进行缩进,与函数名相关的括号周围没有空白。分号表示语句结束,回车和空格作用相同,一条代码可以放在几行位置上[^1]。 ### 声明语句和变量定义 声明语句用于向编译器介绍名字,它说明变量的类型和名字。而定义语句则负责创建与名字关联的实体,会为变量分配内存空间。例如,在声明变量时,需要指定变量的类型,如 `int`、`double` 等。 ### 用户自定义类型定义 C++ 支持用户自定义类型,通过定义类来创建新的数据类型。例如,可以定义一个能够用 `if()` 直接进行判断的数据类型。以下是一个示例: ```cpp //.h文件中 class CDataNode { public: CDataNode(); operator bool() const; bool operator!() const; protected: char *m_pData; }; //.cpp CDataNode::operator bool() const { return m_pData == NULL ? 0 : 1; } bool CDataNode::operator!() const { return m_pData == NULL ? true : false; } ``` 在这个例子中,定义了类 `CDataNode`,并重载了 `bool` 类型转换运算符和 `!` 运算符,使得该类的对象可以直接用于 `if` 语句判断[^4]。 ### 宏定义与类型定义 在 C++ 中,可以使用宏定义来实现代码中类型的切换。例如,在 `main.cpp` 中可以通过宏定义来切换 `real` 的类型: ```cpp #ifdef USE_DP typedef double real; #else typedef float real; #endif ``` 这里通过 `#ifdef` 和 `#else` 条件编译指令,根据是否定义了 `USE_DP` 宏来决定 `real` 是 `double` 类型还是 `float` 类型[^5]。 ### 构造函数的函数 try 语句定义定义类的构造函数时,可以使用函数 try 语句块。例如在定义 `Blob` 和 `BlobPtr` 时,需要将构造函数写成函数 try 语句块。不过具体实现会依赖于第 16 章的详细介绍,示例环境为 Linux Ubuntu(云服务器),使用 `vim` 工具进行开发[^2]。 ### 异常处理相关定义 在 C++ 中,异常处理也是重要的一部分。可以定义抛出异常的函数,例如: ```cpp // circle.cpp #include "circle.h" void sayHello(int num) { for (int i = 0; i < num; ++i) { std::cout << "hello world" << std::endl; } throw "hello, here is the try-catch structure"; } ``` 这个函数在执行完循环输出后,会抛出一个字符串类型的异常[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值