如果我想要一个转换双为字符串,然后返回到双匹配正好,我会使用类似:
double d1 = 1 / 3.0;
string s = d1.ToString("R");
double d2 = double.Parse(s);
Run Code Online (Sandbox Code Playgroud)
但是,"R"格式没有为十进制类型定义(您得到"FormatException:格式说明符无效").
生成十进制类型的往返字符串的方法是什么?
按照gcc版本4.4.2,它似乎在说
typedef struct foo foo;
// more code here - like function declarations taking/returning foo*
// then, in its own source file:
typedef struct foo
{
int bar;
} foo;
Run Code Online (Sandbox Code Playgroud)
在C++中是合法的但在C中则不合法.
当然,我有一个代码体,可以通过使用foo类型在C++中编译得很好,但看起来我必须使用struct foo(在头文件中)才能使它与另一个开发人员编写的一些C代码一起使用.
有没有一种方法,以预先声明一个结构类型定义FOO FOO在GCC C时不编译用于C时,会出现"类型定义'富’的重新定义"错误?(我不希望struct typedef _foo foo的边缘非法且不太干净的下划线解决方案)