相关疑难解决方法(0)

C99 printf格式化程序与C++ 11用户定义文字

这段代码:

#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main(int argc,char **argv)
{
   uint64_t val=1234567890;
   printf("%"PRId64"\n",val);
   exit(0);
}
Run Code Online (Sandbox Code Playgroud)

根据GCC 4.5,适用于C99,C++ 03,C++ 11,但根据GCC 4.7.1,在C++ 11上失败.在PRId64GCC 4.7.1编译之前添加空格.

哪一个是正确的?

c++ printf c99 code-translation c++11

23
推荐指数
1
解决办法
7386
查看次数

c ++是一种与空格无关的语言,是规则的例外

这个wikepedia页面将c ++定义为"与空白无关的独立语言".虽然与所有语言一样都是正确的,但规则有例外.我现在唯一能想到的就是:

vector<vector<double> >
Run Code Online (Sandbox Code Playgroud)

必须有空格,否则编译器将>>解释为流操作符.还有其他什么.编译一个例外列表会很有趣.

c++ whitespace

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

标签 统计

c++ ×2

c++11 ×1

c99 ×1

code-translation ×1

printf ×1

whitespace ×1