我对+ =符号有点困惑.它是如何工作的?
1 += 2 // 等于 ?
还有这个
var data = [1,2,3,4,5];
var sum = 0;
data.forEach(function(value) {
sum += value;
});
sum = ?
Run Code Online (Sandbox Code Playgroud)为什么GCC头文件中的常量表达式被括号括起来,像这样?
#define INTMAX_MIN (-9223372036854775807LL)
#define INTMAX_MAX (9223372036854775807LL)
Run Code Online (Sandbox Code Playgroud)
如果我省略括号,这会有什么不同?
#define INTMAX_MIN -9223372036854775807LL
#define INTMAX_MAX 9223372036854775807LL
Run Code Online (Sandbox Code Playgroud)
为什么有'L'后缀?如果我写以下内容会是一样的吗?
#define INTMAX_MIN -9223372036854775807
#define INTMAX_MAX 9223372036854775807
Run Code Online (Sandbox Code Playgroud)
是否有实际用途或者总是相同的东西?
我知道'L'代表很长时间,我也很清楚C宏中括号的重要性; 我是为了好奇而问这个.
我正在尝试在 C 中使用浮点数执行除法。为了演示我的意思,您可以运行以下代码。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define TEST 20.0 / 65536.0
int main() {
float a = 11.147;
printf("%f\n", a);
float b = 20.0 / 65536.0;
printf("%f\n", b);
float c = a/b;
printf("%f\n", c);
int d = (int) c;
printf("%d\n", d);
float e = a/(float) TEST;
printf("%f\n",e);
printf("%f\n", TEST);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了以下结果
11.147000
0.000305
**36526.492188**
36526
**0.000009**
0.000305
Run Code Online (Sandbox Code Playgroud)
我突出显示的值应该是相同的,因为它是相同公式的结果。唯一的区别是我用来#define定义后者的除数,这给出了错误的值。
我不知道为什么会发生这种情况,有人可以解释一下为什么我会得到这个结果吗?谢谢。
之间的区别(如果有):
#define BUF (8)
和
#define BUF 8
我对c编程不太有经验,从来没有见过#define只有1个数字,而且没有将其放在方括号中。
PS:使用gcc -m32标志在64位linux系统上编译代码。因此,最终的二进制文件是32位ELF可执行文件。
当然是一个重复,我会尽快删除它我会遇到一个答案。我就是找不到我要找的东西。
这两行c是什么意思?
#define NN_DIGITS ( 4)
#define MM_MARKS_DONE (255)
Run Code Online (Sandbox Code Playgroud)
我知道什么#define和#define ()做什么,在哪里#define ()执行宏(),但我不知道这个特殊的警告(使用整数)。
写下来()定义一个整数值实际上是多余的吗?应按位解释这些值吗?如果我们不写会发生什么()。4 和 255 会被当作一个字符串吗?
我正在使用Visual Studio 2015来学习一些基本的C.在尝试使用EOF符号常量时,我决定查找它的定义,这就是我发现的:
#define EOF (-1)
Run Code Online (Sandbox Code Playgroud)
我虽然将-1括在括号中是有点奇怪,所以我决定创建自己的-1符号常量,所以我做了以下内容:
#define ABC -1
Run Code Online (Sandbox Code Playgroud)
在调试器中,EOF和ABC都显示为值-1,所以我开始想知道,为什么EOF定义用于(-1)表示-1何时不需要括号?
谢谢.