C和C++的学习笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 PAGE 41页 编程规范 内存分配后要调用memset strncpy要比strcpy安全 有时最好调用memcpy 定义结构(不是结构指针)后,调用memset Socket编程不要忘记检测返回错误检测 中断有可能会终止某些非原子操作函数read/write/send/recev 调试编译 gcc编译选项和DEFS Gcc is a ansi copiler -g -w -O0 Reduce compilation time and make debugging produce the expected results. This is the default. -O1 -O2 -O3最高级别优化 -ansi -fPIC -shared -D define symbols either as identifiers (-Didentifer) or as values (-Dsymbol=value) in a similar fashion as the #define preprocessor command. For further information on general compiler options and the GNU compiler refer to Appendix . -DSYSV A lot of clients (even some which have explicit SVR4 support) require -DSYSV when building under SVR4. This will not be set when using the default x386.cf and site.def. A quick fix is to add something like the following to the clients Imakefile: #if SystemV4 DEFINES = -DSYSV OTHER_CLIENT_DEPENDENT_DEFINES #endif The best solution is to modify the code so it compiles correctly without -DSYSV. -march = pentium4:4.1.0版本以上支持此选项 VC编译选项(VC8 (2005) cl ) /nologo 编译时不显示编译选项 /Od 无优化 /W3 告警级别为3 /MDd DLL支持(多线程)调试 /Yu “stdafx.h” 使用预编译头 /D “WIN32” /D “_DEBUG” 编译的对象加入调试信息,类似于gcc编译选项 –g /Fo 调试相关 /Fp 浮点数相关 /Fd 调试信息相关 /Gd 调用约定为_cdecl /Gm 最小编译 /Tp 编译成c++代码 /ZI 调试时可以编辑并运行 /Wp64 检测64位可移植性问题 /EHsc 启用C++异常处理 /RTC1 基本运行时检查(RTC1==RTCsu包括RTCs(堆栈帧检查) 和RTCu(未初始化变量检查) ) /Za /Ze Visual C++ 编译器提供许多在 ANSI C 或 ANSI C++ 标准中指定的那些功能以外的功能。这些功能统称为 C 和 C++ 的 Microsoft 扩展。这些扩展在指定 /Ze 选项时可用,而在指定 /Za 选项时不可用。 如果打算将程序移植到其他环境,请禁用语言扩展。编译器将扩展关键字视为简单标识符,禁用其他 Microsoft 扩展,并且自动定义 C 程序的 __STDC__ 预定义宏。 /Zc ?? /Zc:wchar_t /c ?? 调用约定 _cdecl 是C Declaration的缩写,表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数无需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。   _stdcall 是Standard Call的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的 函数在返回后清除,使用的指令是 retn X,X表示参数占用的字节数,CPU在ret之后自动弹出X个字节的堆栈空间。称为自动清栈。函数在编译的时候就必须确定参数个数,并且调用者必须严格的 控制参数的生成,不能多,不能少,否则返回后会出错。   PASCAL 是Pascal语言的函数调用方式,也可以在

文档评论(0)

yurixiang1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档