31、读懂以下程序,说明程序的功能#include<stdio.h>int main(){ int m,n,r,m1,m2; printf("请输入2个正整数:"); scanf("%d%d",&m1,&m2); m=m1; n=m2; do{ r=m%n; m=n; n=r; }while(r!= ...
分类:
其他好文 时间:
2018-08-08 21:30:07
阅读次数:
228
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义; 在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。 举例说明: assert_par ...
分类:
其他好文 时间:
2018-08-07 13:15:05
阅读次数:
271
_AFXDLL是一个在VC++的MFC程序中的系统约定宏定义。这个定义本身没有什么意义,只是约定标记了,MFC程序,是使用的静态链接库还是动态链接库。如果定义了这个宏(通常是在工程项目属性中),说明使用的是MFC动态链接,否则为MFC静态链接。在这两种情况下,代码中DECLARE_MESSAGE_M ...
分类:
编程语言 时间:
2018-08-06 12:17:01
阅读次数:
620
在进行C语言源码至可执行程序的整个过程中,整个形成过程可以分为四步: 1、预处理 gcc -E hello.c -o hello.i 目的: (1)宏定义展开 (2)头文件展开 (3)条件编译 (4)去掉注释 2、编译 gcc -S hello.i -o hello.s (1)检查语法 (2)将C语 ...
分类:
编程语言 时间:
2018-08-04 11:56:05
阅读次数:
208
由于最近公司要开发一个以C++插件机制为主的,主要有一个问题就是C++的二进制兼容性的问题。一旦类使用虚函数,只要随便改动下增删查改下头文件的虚函数,就会导致程序在跑的时候进行乱跳,因为这个时候exe跟dll里面的vtable模型是不一致的刚好程序是使用QT开发了,所以就用了两种方式来保证头文件一致 ...
分类:
编程语言 时间:
2018-08-03 01:07:12
阅读次数:
160
刚学cmake,很多东西还不是很懂,不过今天刚刚实现了通过CMake控制debug的开关,兴奋之余记录一下。 背景介绍: 最近参与到了一个大的C++项目,很多代码已经非常成熟,我来添加一些辅助功能,但是源代码中没有预留debug的接口。为了不影响现有代码的结构,我想通过宏定义的方式添加DEBUG控制 ...
分类:
编程语言 时间:
2018-08-01 22:29:15
阅读次数:
245
返回类型 pit_t是Linux下的进程号类型,也就是Process ID _ Type 的缩写。 在宏定义中是unsigned int类型。 fork()的返回值 负数:如果出错,则fork()返回-1,此时没有创建新的进程。最初的进程仍然运行。 零 :在子进程中,fork()返回0。 正数:在父 ...
分类:
其他好文 时间:
2018-07-31 13:27:09
阅读次数:
149
1、显示设置 1.1 view圆角和边框 1.2 设置加载提示框 1.2.1 第三方框架:Toast 1.2.2 第三方框架:MBProgressHUD 2、事件设置 3、角度转换处理 ...
分类:
其他好文 时间:
2018-07-30 01:06:51
阅读次数:
122
1 c&c++中的宏 "do {...} while (0);" "offsetof & container_of" 2 引用 "1] [do {...} while (0) 在宏定义中的作用" "2] [offsetof & container_of 用法、演变与局限性" ...
分类:
编程语言 时间:
2018-07-28 11:41:05
阅读次数:
165
1. 看下宏定义的结构体 2. 定义的NULL 3. 报错的地方 4. 修改正确的写法 5. 总结,暂时没觉得两种写法有何区别,保留这个问题 ...
分类:
其他好文 时间:
2018-07-24 17:55:54
阅读次数:
186