x = -0
>> -0
typeof(x)
>> "number"
x.toString()
>> "0"
console.log(x)
>> -0
Run Code Online (Sandbox Code Playgroud)
如何以与 console.log 在显示之前相同的方式将 Javascript 的 -0(符号位设置而不是清除的数字零)转换为两个字符的字符串(“-0”)?
我正在重构一些现有软件,并且经常看到
#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没有。