Detailed explanation of being processing

1.predefined symbol(we can view it as some can deirectly be used constants)

for example,

2.#define define constants

Now we supplement some knowledges.

(1)The storage device on the computer

1.memory 2.hard disk 3.register(on the cpu,reading speed very fast)

A code --> register int num;//meaning -- advice put the value of num in the register.

(we often use it when this variable need to be used repeatedly but whether use it depend on the complier judgement)

(2)for(;;) if the judgement write nothing,representing constantly true,which is dead circle.

(3)#define .... At last better not to add ;

A #define using example.

3.#define define macro

format -- #define name(parameter) stuff // do not need";" and the name and "(" need fit closely.

function-- parameter do not calculate and direct put in stuff.

for example,

#undef can cancel a #define

or

so we should remind add () when we use #define

4.side effect

b = a++

a++ is side effect.

when a macro parameter have side effect,it also will make some surprise situations.

5.Some positive and negative between marco and function

Characteristic

The string content will not be search.

Positive

(1)marco performance more better amd running more fast than function because marco just replace the code but function need stack creating to run.

(2) marco perameter need not type but function need.

(3)marco can directly deliver type.

Negative

(1)marco just direct replace the code,so it will add coding length.

(2)marco can not debug because the switch it is running in preprocessing progress but debug just test the program code.

(3)The operator precedence also have question.

(4)marco can not recurse.Can #define itself.

6.

7.#

make parameter in the string that can not be change be the object signal and make it stringify.

8.##

Creating a function mold

A using situation example

9.marco name always all capitalize while function name always not all capitalize

10.conditional comliation directive

1.ifdef

2.#if

do not use variable because this coding all processing in preprocessing but in this time just constant having and variable is not created.

3.branch

4.#if defined(M) if M is defined dy #define ,it will be true which is at the same of #ifdef

5.#if !defined(M) if M is not defined by #define ,it will be true which is at the same of #ifndef

5.head document including

#include <...> standard head document

#include "..." customize head document

#include "..." first will find the path of the source file's directory(文件所在目录的路径)

if not find ,it will find the standard library haed document.

#include <...> just will find the standard library haed document.

6.File nesting

A head document possbility will be used many times.

So we should have some idea to reduce repeat use.

1.#ifndef TEST_H

//first time will do in it

#define TEST_H//put this twe codes in head document head

//when define it,the last time can not put in it

....

#endif // put this code in the document last

2.#program once

using it can directly make this document just using once.

At last I tell something I found.

A variable just a digital.Like a int * p.The p essence is a digital.In pointer, it will be viewed as a address.

In pointer,it save just a address but by it type,it will control the address memory by the type manner.

for example,

//指针是带有有色眼镜的,它看内存的方式只和她的类型有关。

Like it ,using 0 to be the struct start address to calculate it offset.we can not visit the value but we can using pointer to find the struct member address.

相关推荐
xie_pin_an8 小时前
深入浅出 C 语言数据结构:从线性表到二叉树的实战指南
c语言·数据结构·图论
总爱写点小BUG11 小时前
打印不同的三角形(C语言)
java·c语言·算法
xie_pin_an16 小时前
C 语言排序算法全解析:从原理到实战,附性能对比
c语言·算法·排序算法
再睡一夏就好16 小时前
深入解析Linux页表:从虚拟地址到物理内存的映射艺术
linux·运维·服务器·c语言·c++·页表·缺页异常
LinHenrY122717 小时前
初识C语言(编译和链接)
c语言·开发语言·蓝桥杯
l1t17 小时前
利用小米mimo为精确覆盖矩形问题C程序添加打乱函数求出更大的解
c语言·开发语言·javascript·人工智能·算法
松涛和鸣18 小时前
34、 Linux IPC进程间通信:无名管道(Pipe) 和有名管道(FIFO)
linux·服务器·c语言·网络·数据结构·数据库
秦苒&18 小时前
【C语言】详解数据类型和变量(一):数据类型介绍、 signed和unsigned、数据类型的取值范围、变量、强制类型转换
c语言·开发语言·c++·c#
LinHenrY122718 小时前
初识C语言(文件操作)
c语言·windows·microsoft
智者知已应修善业18 小时前
【删除有序数组中的重复项 II之O(N)算法】2024-1-31
c语言·c++·经验分享·笔记·算法