问题标签 [compiler-directives]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - Delphi #IF(DEBUG) 等效?
是否有与 C# #if(DEBUG) 编译器指令等效的 Delphi?
.net - VB.net 中的#warning 指令
我知道 #warning 指令在 vb.net 中不存在......有类似的东西吗?
我希望能够在编译器时抛出消息(警告)。
delphi - {$IOCHECKS OFF} 会影响哪些 API?
我们有一些古老的 Delphi 代码(甚至可能起源于 Turbo Pascal 代码)使用{$I-}
, aka ,这使得代码使用IOResult而不是磁盘 I/O 错误的异常。{$
IOCHECKS
OFF}
{$I-}
我想摆脱{$IOCHECKS OFF}
. 这只影响像AssignFile/Reset/Rewrite/Append/CloseFile这样笨拙的旧内置I/O函数吗?或者它是否也会影响更现代的东西,比如 TFileStream?更重要的是,还有什么我没有想到的可能会受到影响?(Delphi Basics建议它也会影响 MkDir 和 RmDir。如果它影响那些,必须有更多。)
Delphi 2007 帮助主题“输入输出检查 (Delphi)”( ms-help://borland.bds5/devcommon/compdirsinput_outputchecking_xml.html
) 指出这会影响“I/O 过程[s]”,并且“I/O 过程在 Delphi 语言指南中进行了描述”。这并没有多大帮助,因为 CodeGear 从未发布过语言指南,而 Borland 上一次发布语言指南是 Delphi 5。
哪些函数和类在 下表现不同{$I-}
?
编辑:接受的答案提供了一些很好的背景,但这里是按字母顺序排列的列表形式的快速摘要:{$IOCHECKS OFF}
仅影响系统单元中的以下例程。
- 附加
- 块读取
- 块写
- 目录
- 关闭文件
- Eof
- 埃伦
- 擦除
- 文件位置
- 文件大小
- 冲洗
- 目录
- 读
- 阅读
- 改名
- 重置
- 改写
- 目录
- 寻找
- 搜索
- 寻根
- 设置LineBreakStyle
- 截短
- 写
- 写
properties - @property 和 @synthesize:为什么两者都有?
大约两个月以来,我一直在攀登 X-code 的学习曲线。我了解@property/@synthesize 指令的用途,但总是在.h 文件中声明属性,然后在.m 文件中合成它们似乎有点多余。
为什么编译器需要这两个指令?如果它们总是一起使用,它们中的一个在技术上不是多余的吗?
提前感谢您对此主题的任何见解。
约翰·多纳
c# - 如何在 C# 中设置项目范围的#define
我在一个项目中有几个类,它们只需要在当前尚未准备好发布或调试的应用程序的某些版本中。
为了防止使用这些类,我想围绕它们进行设置:
不幸的是,我不知道如何设置项目范围的#define。
Visual Studio 中是否有设置项目范围定义的功能?
如果有,虽然我现在不需要它,是否有设置解决方案范围定义的功能?
如果没有这样的功能(看到 C# 没有包含文件,我想这是可能的),是否有任何方法或插件可以在不使用命令行编译器和 /D 的情况下执行此功能?
delphi - 自动删除 Delphi IFDEf 编译器指令
我目前正在使用“继承”代码,该代码具有(随机散布在各处)一大堆基于 Delphi 版本的条件编译器指令,可以追溯到 Delphi 2 。从现在开始,所有的开发都将使用 Delphi 2009 或未来。Delphi 2009 中是否有工具或插件可以根据指定的“最低”版本自动删除编译器条件代码段?
c# - 用于调试与发布的 C# if/then 指令
在解决方案属性中,我将配置设置为我唯一的项目的“发布”。
在主程序的开头,我有这段代码,它显示“Mode=Debug”。我在最上面也有这两行:
我在测试正确的变量吗?
我的目标是根据调试与发布模式为变量设置不同的默认值。
c++ - 隐式转换整数计算以在 C++ 中浮动
是否有任何编译器具有将整数计算强制转换为隐式浮点的指令或参数。例如:
“f”是“0”,因为计算的常量(1、3、10)是整数。我想用编译器指令或参数转换整数计算。我的意思是,我不会像这样使用显式转换或“.f”前缀:
或者
你知道任何 c/c++ 编译器有任何参数来执行这个过程而无需显式转换或“.f”吗?
c# - C# 编译器指令
我正在查看一些 C# 代码,并且遇到了以下语句:
我假设 DEBUG 将在某处定义如下:
但是我无法找到这样的定义,尽管代码的行为似乎已经设置好了。DEBUG 是一个特例,如果是,它是如何设置/取消设置的?