Code Bye

关于C++宏的问题

学过C#,java现在在工作中,目前在自学C++,现在本人感觉C++代码好怪
关于下面这段代码意思还是看得懂,但是觉得感觉太繁琐了,
替代符,批命令…简直不能接受,替代符就不能用变量吗?批命令不能写方法吗?
能解释下,关于C++宏或下面这些代码的优势吗?
#ifndef _CRTIMP
#if defined(CRTDLL) && defined(_CRTBLD)
#define _CRTIMP __declspec(dllexport)
#else  /* defined(CRTDLL) && defined(_CRTBLD) */
#ifdef _DLL
#define _CRTIMP __declspec(dllimport)
#else  /* _DLL */
#define _CRTIMP
#endif  /* _DLL */
#endif  /* defined(CRTDLL) && defined(_CRTBLD) */
#endif  /* _CRTIMP */
#ifndef _INC_CRTDEFS
#define _INC_CRTDEFS
#ifdef _CRTBLD
/* Turn off cpp overloads internally */
#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0
解决方案

60

引用:
Quote: 引用:

条件编译宏,是在编译的时候使用的。不涉及运行时。
所谓的“方法”都是运行时的概念,无法达到编译时的效果

明白了,参考 C++当年的硬件条件,在编译时是为了节约资源?那现在这种方式 用的多吗?

不是至少不完全是为了节约资源!
条件编译,多数是为了让源码适应不同的环境


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于C++宏的问题