小编Iva*_*van的帖子

Javascript。正确地将 -0 转换为字符串

x = -0
>> -0
typeof(x)
>> "number"
x.toString()
>> "0"
console.log(x)
>> -0
Run Code Online (Sandbox Code Playgroud)

如何以与 console.log 在显示之前相同的方式将 Javascript 的 -0(符号位设置而不是清除的数字零)转换为两个字符的字符串(“-0”)?

javascript zero

5
推荐指数
1
解决办法
123
查看次数

#在#include预编译标头之前#定义XYZ

我正在重构一些现有软件,并且经常看到

#define XYZ 
#include "stdafx.h"
Run Code Online (Sandbox Code Playgroud)

stdafx预编译的头文件在哪里。

Q1。知识渊博的人可以确认以下内容吗?正确的顺序始终是
(除了文件之外stdafx.cpp

#include "stdafx.h"
#define XYZ 
Run Code Online (Sandbox Code Playgroud)

我的推理如下。由于标头是预编译的,因此即使已在标头中使用,在预编译的标头之前的定义也不会影响预编译的标头。预编译头将使用XYZ初始编译发生时设置为宏的任何内容。

所以

#define XYZ 
#include "stdafx.h"
Run Code Online (Sandbox Code Playgroud)

误导读者进行思考XYZ可能对内容产生影响stdafx.h

Q2。两者在功能上是否等效,我的重构是否安全?

#include "stdafx.h"
#define XYZ 
Run Code Online (Sandbox Code Playgroud)

明确定义,XYZ而替代方案没有那么明确定义。(据我所知,使用预编译头很可能会被某些编译器覆盖该定义。)但是XYZ在包含预编译头之前进行定义似乎确实可行,因为它在重构的代码中经常出现。

Q3。行为是否在标准中定义?

如果我是编译器作者,那么#define在包含预编译头之前,我将拒绝任何内容!我的VS2019没有。

c++ pch visual-studio

3
推荐指数
1
解决办法
41
查看次数

标签 统计

c++ ×1

javascript ×1

pch ×1

visual-studio ×1

zero ×1