在这里,我们将给大家分享关于C##define预处理器的知识,让您更了解c#预处理器指令的本质,同时也会涉及到如何更有效地#define预处理器、2——PHPdefined函数illdefinedbe
在这里,我们将给大家分享关于C# #define预处理器的知识,让您更了解c#预处理器指令的本质,同时也会涉及到如何更有效地#define预处理器、2——PHP defined函数 ill defined be defined by already defined、c – 如何从#define中删除C风格的转换,所以我可以在预处理器#if中使用它?、c++ 预处理指令#define, #endif...的内容。
本文目录一览:- C# #define预处理器(c#预处理器指令)
- #define预处理器
- 2——PHP defined函数 ill defined be defined by already defined
- c – 如何从#define中删除C风格的转换,所以我可以在预处理器#if中使用它?
- c++ 预处理指令#define, #endif...
C# #define预处理器(c#预处理器指令)
#define PI
using System;
namespace PreprocessorDAppl {
class Program {
static void Main(string[] args) {
#if (PI)
Console.WriteLine(PI is defined);
#else
Console.WriteLine(PI is not defined);
#endif
Console.ReadKey();
}
}
}
#define预处理器
#include <stdio.h>
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '
'
int main() {
int area;
area = LENGTH * WIDTH;
printf(value of area : %d\n, area);
printf(%c\n, NEWLINE);
return 0;
}
2——PHP defined函数 ill defined be defined by already defined
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年5月18日 * 版本号:V1.0 * 问题描述:PHP * 程序输入:无 * 程序输出:无 */ <?php define("PI1",3.14); $p = "PI1"; $is1 = defined($p); $is2 = defined("PI2"); var_dump($is1); var_dump($is2); ?>
defined()函数可以帮助我们判断一个常量是否已经定义,其语法格式为:
bool defined(string constants_name
若存在则返回布尔类型true,否则返回布尔类型false; (注:bool表示函数返回值类型为布尔类型)以上就介绍了2——PHP defined函数,包括了defined方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
c – 如何从#define中删除C风格的转换,所以我可以在预处理器#if中使用它?
[第三方标题(不能修改)]
#define SWCI_VERSION_MAJOR (unsigned char) 4 #define SWCI_VERSION_MInor (unsigned char) 16
当他们以这种方式进行比较时:
[我的实施]
#if SWCI_VERSION_MAJOR >= 4 && SWCI_VERSION_MInor >= 16
然后我得到:
Fatal error C1017: invalid integer constant expression
我注意到,如果我定义它们(unsigned char),则该指令将被接受,但是我无法访问定义,所以如果可能,我想解决该问题.
解决方法
#define SWCI_VERSION_MAJOR (unsigned char) 4 #define SWCI_VERSION_MInor (unsigned char) 16 #define X(unused) #define APPLY(x) x #define MAJOR (APPLY(X SWCI_VERSION_MAJOR)) #define MInor (APPLY(X SWCI_VERSION_MInor)) #if MAJOR >= 4 && MInor >= 16 #error "Version is greater or equal to 4.16" #endif
有关#if评估true并打印我添加的#error消息的示例,请参见https://goo.gl/GOsLDL.
c++ 预处理指令#define, #endif...
常见的预处理指令有:
# 空指令,无任何效果
# include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
#endif 结束一个#if......#else条件编译块
#error 停止编译并显示错误信息
什么是预处理指令?
预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。预处理指令是在编译器进行编译之前进行的操作.预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。
工作中经常这样使用宏:
1. 常常使用宏来调试代码
#if 0
///< 旧的代码(或函数) (旧的代码, 将会被预处理的时候,屏蔽掉, 不进行编译)
#else
///< 新的代码(或函数)
#endif
#ifndef JOE_DEBUG
///< 新的代码(或函数)
#else
///< 旧的代码(或函数) (旧的代码, 将会被预处理的时候,屏蔽掉, 不进行编译)
#endif
#ifdef Q_DEBUG
///< 新的代码(或函数)
#else
///< 旧的代码(或函数) (旧的代码, 将会被预处理的时候,屏蔽掉, 不进行编译)
#endif<br><br>
通过以上类似的方法, 可以防止由于过多的修改代码, 而把代码修改的一塌糊涂. 建议修改代码的时候, 做到保护好以前的代码, 尽量不进行代码的删除操作. 要养成使用宏和注释代码的习惯.
2. 使用宏来根据不同的平台包含不同的文件. 很多时候, 我们的代码是需要跨系统平台编译和运行的. 比如: 一个小功能代码,
需要既可以在Win下面运行, 还要可以在Max, linux上面运行. 可是, 因为系统的不一样, 有些时候, 头文件的包含的名字是不一样的.
所以,这时候, 就是用到了宏. 因为我们使用编程工具分不同的系统平台, 编程工具自身的环境就会包含不同平台的系统宏, 假设OS_Win,
OS_Mac, OS_Linux 分别代码三种系统不同的宏. 而且,Win版本的编程工具中已经定义了OS_Win, 类似的Mac下,
编程工具定义的是OS_Mac, Linux...
#ifdef OS_Win
#include <windows.h>
#endif
#ifdef OS_Mac
#include <mac.h>
#endif
#ifdef OS_Linux
#include <linux.h>
#endif
/** 不仅使用在头文件的包含. 而且,对于不同的系统平台. 你也可以使用不同的代码结构. */
今天关于C# #define预处理器和c#预处理器指令的讲解已经结束,谢谢您的阅读,如果想了解更多关于#define预处理器、2——PHP defined函数 ill defined be defined by already defined、c – 如何从#define中删除C风格的转换,所以我可以在预处理器#if中使用它?、c++ 预处理指令#define, #endif...的相关知识,请在本站搜索。
本文标签: