2012-07-09 03:55
⁄ 工业·编程
⁄ 共 3641字
一、一般用法 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. 用法: #include<cstdio> #include<climits> using namespace std; #define STR(s) #s #define CONS(a,b) int(a##e##b) int main() { printf(STR(vck)); // 输出字符串"vck" pri...
c++阅读全文
2012-07-09 03:53
⁄ 工业·编程
⁄ 共 1159字
这些函数的区别在于 实现功能 以及 操作对象 不同。
strcpy 函数操作的对象是 字符串,完成 从 源字符串 到 目的字符串 的 拷贝 功能。
snprintf 函数操作的对象 不限于字符串:虽然目的对象是字符串,但是源对象可以是字符串、也可以是任意基本类型的数据。这个函数主要用来实现 (字符串或基本数据类型)向 字符串 的转换 功能。如果源对象是字符串,并且指定 %s 格式符,也可实现字符串拷贝功能。
memcpy 函数顾名思义就是 ...
c++阅读全文
2012-07-09 03:51
⁄ 工业·编程
⁄ 共 2644字
1,防止一个头文件被重复包含 #ifndef BODYDEF_H #define BODYDEF_H //头文件内容 #endif 2,得到指定地址上的一个字节或字 #define MEM_B( x ) ( *( (byte *) (x) ) ) #define MEM_W( x ) ( *( (word *) (x) ) ) 3,得到一个field在结构体(struct)中的偏移量 #define FPOS( type, field ) ( (dword) &(( type *) 0)-> field ) 4,得到一个结构体中field所占用...
c++阅读全文
2012-07-09 03:49
⁄ 工业·编程
⁄ 共 3358字
一、 摘要
C语言编译的整个过程是非常复杂的,里面涉及到的编译器知识、硬件知识、工具链知识都是非常多的,深入了解整个编译过程对工程师理解应用程序的编写是有很大帮助的,希望大家可以多了解一些,在遇到问题时多思考、多实践。
一般情况下,我们只需要知道分成编译和连接两个阶段,编译阶段将源程序(*.c)转换成为目标代码(一般是obj文件,至于具体过程就是上面说的那些阶段),连接阶段是把源程序转换成的目标代码(obj...
c++阅读全文
2012-07-09 03:44
⁄ 工业·编程
⁄ 共 5690字
写在本文之前算起来,我用Visual C++也有将近5年的历史了。在这期间,我也曾涉猎过Visual Basic和Delphi,但都是浅尝而止;Visual C++始终是我的主业。可是努力的成果如何呢?我用Delphi作出了十多个有规模的软件,用VB--虽然我用在VB上的时间只有短短的两三个月--也有两个像样的项目;然而,在我付出了最大热情和最多努力的Visual C++上面,却只作出了三个自己看得上眼的软件。 固然,在用Visual C++的时候,MFC帮了我不...
MFC阅读全文
2012-07-09 03:38
⁄ 工业·编程
⁄ 共 3818字
Ansi 字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个/0结尾,常用于txt文本文件 Unicode 字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的/0结尾,NT操作系统内核用的是这种字符串,常被定义为typedef unsigned short wchar_t;所以我们有时常会见到什么char*无法转换为unsigned short*之类的错误,其实就是unicode UTF8 是Unicode一种压缩形式,英文A在unicode中表示为0x0041,老外觉得这种存储方式太...
编程阅读全文
2012-07-09 03:34
⁄ 工业·编程
⁄ 共 6303字
一、什么是Unicode
先从ASCII说起,ASCII是用来表示英文字符的一种编码规范。每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH)。其实,英文字符并没有那么多,一般只用前128个(00H—7FH,最高位为0),其中包括了控制字符、数字、大小写字母和其它一些符号。而最高位为1的另128个字符(80H—FFH)被称为“扩展ASCII”,一般用来存放英文的制表符、部分音标字符等等的一些其它符号。 这种字符编...
VC阅读全文
2012-07-09 03:31
⁄ 工业·编程
⁄ 共 419字
当然,把常量写在 == 运算符的左或右对运算本身没有任何影响,它们仅仅是两种不同的书写风格。所以我敢保证很多人并不会因为看到某些帖子宣称“应该将常量放在左边”就真的改变自己固有的风格,说到底,习惯而已。
不过,将常量写在运算符左边在某种情况下可能会更容易查错。看下面的例子:
片段一,当且仅当 flag == 5 时执行循环体中的内容:
int flag; ... while (flag == 5) { /* do something */ }
片段二,手...
编程阅读全文
2012-07-09 03:29
⁄ 工业·编程
⁄ 共 256字
┃代码│ 意 义 ┃ ┃ %a │读浮点值(仅适用于 C99) ┃ ┃ %A │读浮点值(仅适用于 C99) ┃ ┃ %c │读单字符 ┃ ┃ %d │读十进制整数 ┃ ┃ %i │读十进制、八进制、十六进制整数 ┃ ┃ %e │读浮点数 ┃ ┃ %E │读浮点数 ┃ ┃ %f │读浮点数 ┃ ┃ %F │读浮点数(仅适用于 C99) ┃ ┃ %g │读浮点数 ┃ ┃ %G │读浮点数 ┃ ┃ %o │读八进制数 ┃ ┃ %s │读字符串 ┃ ┃ %x │读十六进制数 ┃ ┃ %X │...
c++阅读全文
2012-07-09 03:28
⁄ 工业·编程
⁄ 共 6501字
在工业生产控制系统中,有许多需要定时完成的操作,如定时显示当前时间,定时刷新屏幕上的进度条,上位 机定时向下位机发送命令和传送数据等。特别是在对控制性能要求较高的实时控制系统和数据采集系统中,就更需要精确定时操作。
众所周知,Windows 是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的。 这样就带来了一些问题,如一旦计算机的CPU被某个进程占用,或...
VC阅读全文