#include <stdio.h>
int main() {
unsigned long long int num = 285212672; //FYI: fits in 29 bits
int normalInt = 5;
printf("My number is %d bytes wide and its value is %ul. A normal number is %d.\n", sizeof(num), num, normalInt);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
My number is 8 bytes wide and its value is 285212672l. A normal number is 0.
Run Code Online (Sandbox Code Playgroud)
我认为这个意想不到的结果是来自打印unsigned long long int.你怎么printf()了unsigned long long int?
我在我的项目中使用eclipse,在弄乱我的eclipse设置时,我启用了Javascript支持.现在eclipse抱怨JQuery库中有错误,并且不让我编译项目.有谁知道如何关闭javascript验证?
MyClass a1 {a}; // clearer and less error-prone than the other three
MyClass a2 = {a};
MyClass a3 = a;
MyClass a4(a);
Run Code Online (Sandbox Code Playgroud)
为什么?
我在SO上找不到答案,所以让我回答一下我自己的问题.
我正在尝试编写一个YAML字典,用于Rails项目的国际化.我有点困惑,因为在一些文件中,我看到双引号中的字符串,而有些没有.需要考虑以下几点:
!- 非特定标记,而第一个示例的最后两行不使用 - 它们都有效.我的问题是:在YAML中使用不同类型的引号有哪些规则?
可以这么说:
!单引号,当...?!?++和 -
已知++(增量)和 - (减量)运算符通过鼓励过多的诡计来导致错误的代码.它们仅次于故障架构,可以实现病毒和其他安全威胁.有一个plusplus选项禁止使用这些运算符.
我知道像PHP这样的PHP结构$foo[$bar++]可能很容易导致一个错误,但是我无法找到一个更好的方法来控制循环而不是一个while( a < 10 ) do { /* foo */ a++; }或for (var i=0; i<10; i++) { /* foo */ }.
jslint是否突出显示它们是因为有些类似的语言缺少" ++"和" --"语法或者处理方式不同,还是有其他理由可以避免我可能会丢失的" ++"和" --"?
当命令是if语句的一部分时,如何在shell中的多行上拆分命令?
这有效:
if ! fab --fabfile=.deploy/fabfile.py --forward-agent --disable-known-hosts deploy:$target; then rc=1
fi
Run Code Online (Sandbox Code Playgroud)
这不起作用:
# does not work:
if ! fab --fabfile=.deploy/fabfile.py \
--forward-agent \
--disable-known-hosts deploy:$target; then
rc=1
fi
Run Code Online (Sandbox Code Playgroud)
而不是整个命令执行,我得到:
./script.sh: line 73: --forward-agent: command not found
Run Code Online (Sandbox Code Playgroud)
更重要的是,我对Bash的理解中缺少哪些内容可以帮助我理解未来的类似问题?
如何用Python文字将整数表示为二进制数?
我很容易找到十六进制的答案:
>>> 0x12AF
4783
>>> 0x100
256
Run Code Online (Sandbox Code Playgroud)
和八进制:
>>> 01267
695
>>> 0100
64
Run Code Online (Sandbox Code Playgroud)
你如何使用文字在Python中表达二进制文件?
答案摘要
int('01010101111',2)文字来表示二进制文件,但不能用文字表达.0b1100111或0B1100111.0o27或0O27(第二个字符是字母O)表示八进制.027octals 的旧语法.据我所知,&在命令之后使用是为了在后台运行它.
&用法示例:tar -czf file.tar.gz dirname &
但是怎么样&&?(看看这个例子:https://serverfault.com/questions/215179/centos-100-disk-full-how-to-remove-log-files-history-etc#answer-215188)
也许我不是来自这个星球,但在我看来,以下应该是语法错误:
int a[] = {1,2,}; //extra comma in the end
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.我很惊讶,当编译这段代码在Visual Studio中,但我已经学会了不至于C++规则而言信任MSVC的编译器,所以我检查的标准,它是标准允许为好.如果你不相信我,你可以看到8.5.1的语法规则.

为什么允许这样做?这可能是一个愚蠢无用的问题,但我希望你理解我为什么这么问.如果它是一般语法规则的子案例,我会理解 - 他们决定不再使一般语法更难以在初始化列表的末尾禁止冗余逗号.但不,明确允许附加逗号.例如,在函数调用参数列表的末尾(当函数采用时...)不允许使用冗余逗号,这是正常的.
那么,是否有任何特殊原因明确允许这个冗余逗号?