对于许多问题,答案似乎可以在"标准"中找到.但是,我们在哪里找到它?最好是在线.
谷歌搜索有时会觉得徒劳,尤其是对于C标准,因为他们在编程论坛的大量讨论中被淹没.
要开始这个,因为这些是我现在正在搜索的,那里有很好的在线资源:
我想知道像int64_t这样的类型来自哪里.它们是c ++标准还是os依赖?(1)
另外,你知道我在哪里可以找到关于这些类型的文档吗?到目前为止,我找不到有用的信息.他们有一个特别的名字吗?(2)
它们与标准基本类型(如int,long ...)的一般区别是什么...(3)
谢谢你们
我找不到合适的格式说明符 int64_t
int64_t var;
[NSString stringWithFormat:@"value is: %?? ",var];
Run Code Online (Sandbox Code Playgroud) 我知道在Unix/Linux中long大小是64位.
但是当在windows(x64)下使用相同时,long总是32位.
是否有任何变通方法/库可以在C中使用更大的整数?
编辑:考虑到第一个答案我删除了"myexp()"函数,因为bug而不是讨论的要点
我有一段简单的代码,为不同的平台编译并获得不同的性能结果(执行时间):
Java 8/Linux:3.5秒
执行命令: java -server Test
C++/gcc 4.8.3:6.22秒
编译选项: O3
C++/Visual Studio 2015:1.7秒
编译器选项: /Og /Ob2 /Oi
似乎VS有这些额外的选项不适用于g ++编译器.
我的问题是:为什么Visual Studio(带有那些编译器选项)在Java和C++方面都更快(使用O3优化,我相信这是最先进的)?
您可以在下面找到Java和C++代码.
C++代码:
#include <cstdio>
#include <ctime>
#include <cstdlib>
#include <cmath>
static unsigned int g_seed;
//Used to seed the generator.
inline void fast_srand( int seed )
{
g_seed = seed;
}
//fastrand routine returns one integer, similar output value range as C lib.
inline int fastrand()
{
g_seed = ( 214013 * g_seed + 2531011 );
return ( …Run Code Online (Sandbox Code Playgroud)