如何使 MinGW 将像 "text" 这样的文本视为常量字符*
How to make MinGW to treat texts like "text" as const char*
ok,升级到MinGW 4.4后。*一段时间以前,我所有的字面上写的字符串(如"i'm the string"
)都被视为std::string
类型。有什么命令行选项可以让MinGW像以前一样把它们当作const char*
吗?
字符串在C/c++中默认是char *
/char[]
,只有当你明确地说它是std::string
时,你才会得到这些。
例子:
std::cout << "first:t" << typeid("aa").name() << std::endl;
std::cout << "second:t" << typeid(std::string("a")).name() << std::endl;
输出:first: A3_c
second: Ss
结果:- first:一个长度为3 (= 2 char + end)的
char
数组 - 秒:是
std::string
正如你所看到的,如果你写"abc"
,你不会得到一个std::string
。
但是:如果你写std::string str = "abc"
,你得到一个std::string
,因为使用了赋值运算符(=
): string& operator= (const char* s)
相关文章:
- C++ 在类中使用常量引用文本时 O2 内存泄漏
- C++ 字符串文本和常量
- 调用 cout 时如何在结构中输出常量文本?
- 将字符串文本常量定义为 char const* 和 wchar const*
- 检测编译时文本和常量
- 是否有必要在模板化函数中强制转换文本常量?
- C++编译器如何在引用参数中实际传递文本常量?
- 在模板实例化期间,文本值不被视为常量表达式
- 将文本字符串作为常量字符 * 参数传递会导致代码分析器错误
- 在 c++ 中存储文本常量
- 常量表达式中的非文本类型'compare'
- 声明具有常量引用与常量变量的常量文本字符串
- G++ 将返回的字符串文本视为常量字符指针而不是常量字符数组
- 将文本文件转换为常量字符指针
- 在编译时常量中对字符串文本进行下标
- C11/C++11 宏,用于将常量字符串与文本整数相关联
- 为什么将整数文本类型转换为指针值会导致非常量表达式
- 在文本/常量模板参数中使用变量 contet
- 从文本文件中读取行数,并将其存储为数组大小为c++的常量int
- C++从文本文件读取常量字符数组