c/c++一些容易遗忘的知识点(不断补充)

1、c语言中函数不能使用缺省参数,c++才可以。

 

2、VC在调试状态下怎样查看错误消息(GetLastError())

  通常可以用GetLastError()得到错误编号然后用FormatMessage(...)得到错误描述。

  这里有一个更直接的办法:在Watch窗口添加@err,hr

 

3、VC中编写win32应用程序而不需要依赖MSVC运行库的方法:保证应用程序(exe)以及应用程序所包含的库(lib,dll等)都是在MTD(debug)或者MT(release)下面编译。vc中设置方法:项目->属性->配置属性->C/C++->代码生成->运行时库->多线程(/MTD)(debug下)或者多线程(/MT)(release下)。

 

4、在vc属性设置中,项目->属性->配置属性->链接器->显示进度->显示某些进度消息(/VERBOSE:LIB),这样就可以在编译链接程序过程中在输出窗口看到链接的顺序了,对于处理一些重复包含的库报错的问题有帮助。

 

5、win32网络编程中出现的定义重复问题。例如:

error    C2011:    “fd_set”    :    “struct”类型重定义   

error    C2011:    “timeval”    :    “struct”类型重定义   
等,这是因为头文件被包含了多次,

在默认windows.h会包含winsock.h,当你包含winsock2.h就会冲突,因此在包含windows.h前需要定义一个宏,去除winsock.h包含

添加如下代码:
#define    WIN32_LEAN_AND_MEAN   

#include   <windows.h>

 

6、内联函数:以内存空间换取执行时间;只是一般的函数体替换,对于一些经常性需要调用的函数(如工具函数)写成内联函数,可以加快调用速度。内联函数注意事项:不允许用循环语句和开关语句;内联函数定义必须包含函数体,这样才算是内联函数。

 

 

你可能感兴趣的:(多线程,编程,struct,dll,exe,语言)