我是靠谱客的博主 虚心热狗,最近开发中收集的这篇文章主要介绍c语言1017错误什么意思,错误 C1017,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

错误 C1017

02/21/2013

本文内容

无效的整数常数表达式

#if 指令中的表达式不存在或者计算结果不为常数。

用 #define 定义的常数在 #if、#elif 或 #else 指令中使用时必须具有计算结果为整数常数的值。

下面的示例生成 C1017:

// C1017.cpp

#define CONSTANT_NAME "YES"

#if CONSTANT_NAME // C1017

#endif

可能的解决方案:

// C1017b.cpp

// compile with: /c

#define CONSTANT_NAME 1

#if CONSTANT_NAME

#endif

因为 CONSTANT_NAME 计算结果为字符串而不是整数,所以 #if 指令生成错误 C1017。

在其他情况中,预处理器将未定义的常数作为零进行计算。这可能导致意外的结果,如下例中所示。因为未定义 YES,所以它的计算结果为零。表达式 #if CONSTANT_NAME 计算结果为 false,而要对 YES 使用的代码由预处理器移除。由于 NO 也未定义(零),因此 #elif CONSTANT_NAME==NO 计算结果为 true (0 == 0),导致预处理器将代码保留在语句的 #elif 部分(与预期的行为完全相反)。

// C1017c.cpp

// compile with: /c

#define CONSTANT_NAME YES

#if CONSTANT_NAME

// Code to use on YES...

#elif CONSTANT_NAME==NO

// Code to use on NO...

#endif

若要确切了解编译器如何处理预处理器指令,请使用 /P、/E 或 /EP。

最后

以上就是虚心热狗为你收集整理的c语言1017错误什么意思,错误 C1017的全部内容,希望文章能够帮你解决c语言1017错误什么意思,错误 C1017所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部