标签: c++

如何摆脱GCC中从字符串常量到'char*''警告的弃用转换?

所以我正在开发一个非常大的代码库,最近升级到gcc 4.3,它现在触发了这个警告:

警告:不推荐将字符串常量转换为'char*'

显然,解决这个问题的正确方法是找到每个声明

char *s = "constant string";
Run Code Online (Sandbox Code Playgroud)

或函数调用如:

void foo(char *s);
foo("constant string");
Run Code Online (Sandbox Code Playgroud)

并使他们成为const char指针.但是,这意味着触及564个文件,最小,这不是我希望在此时执行的任务.现在的问题是我正在运行-werror,所以我需要一些方法来扼杀这些警告.我怎样才能做到这一点?

c++ string gcc

401
推荐指数
11
解决办法
41万
查看次数

哪个是用于将整数除以2的更好选项?

以下哪种技术是将整数除以2的最佳选择,为什么?

技巧1:

x = x >> 1;
Run Code Online (Sandbox Code Playgroud)

技术2:

x = x / 2;
Run Code Online (Sandbox Code Playgroud)

x是一个整数.

c c++ optimization division micro-optimization

401
推荐指数
20
解决办法
6万
查看次数

usr/bin/ld:找不到-l <nameOfTheLibrary>

我正在尝试编译我的程序,它返回此错误:

usr/bin/ld: cannot find -l<nameOfTheLibrary>
Run Code Online (Sandbox Code Playgroud)

在我的makefile中,我使用命令g++并链接到我的库,这是指向位于其他目录中的库的符号链接.

是否可以选择添加以使其正常工作?

c++ linux g++

401
推荐指数
8
解决办法
86万
查看次数

如何在C++中对字符串进行标记?

Java有一个方便的拆分方法:

String str = "The quick brown fox";
String[] results = str.split(" ");
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法在C++中执行此操作?

c++ string split tokenize

400
推荐指数
18
解决办法
53万
查看次数

编译/链接过程如何工作?

编译和链接过程如何工作?

(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)

c++ compiler-construction linker c++-faq

395
推荐指数
6
解决办法
19万
查看次数

为什么Java不提供运算符重载?

从C++到Java,明显没有答案的问题是为什么Java不包含运算符重载?

是不是Complex a, b, c; a = b + c;比简单得多Complex a, b, c; a = b.add(c);

是否存在已知的原因,有效的论据,使运算符重载?这个理由是武断的,还是输给了时间?

c++ java operator-overloading

394
推荐指数
10
解决办法
16万
查看次数

我在哪里可以找到当前的C或C++标准文档?

对于许多问题,答案似乎可以在"标准"中找到.但是,我们在哪里找到它?最好是在线.

谷歌搜索有时会觉得徒劳,尤其是对于C标准,因为他们在编程论坛的大量讨论中被淹没.

要开始这个,因为这些是我现在正在搜索的,那里有很好的在线资源:

  • C89
  • C99
  • C11
  • C++ 98
  • C++ 03
  • C++ 11
  • C++ 14

c c++ standards c++-faq

394
推荐指数
8
解决办法
12万
查看次数

C++是无上下文还是上下文敏感?

我经常听到C++是一种上下文敏感语言的说法.请看以下示例:

a b(c);
Run Code Online (Sandbox Code Playgroud)

这是变量定义还是函数声明?这取决于符号的含义c.如果c变量,则a b(c);定义名为btype 的变量a.它是直接初始化的c.但是如果c是一个类型,则a b(c);声明一个名为a的函数b,c并返回一个a.

如果您查找无上下文语言的定义,它基本上会告诉您所有语法规则必须具有仅由一个非终端符号组成的左侧.另一方面,上下文敏感语法允许左侧的任意字符串的终端和非终端符号.

浏览"C++编程语言"的附录A,除了左侧的单个非终端符号之外,我找不到单个语法规则.这意味着C++是无上下文的.(当然,在无上下文语言形成上下文敏感语言的子集的意义上,每种无上下文语言也都是上下文敏感的,但这不是重点.)

那么,C++是无上下文还是上下文敏感?

c++ syntax grammar context-free-grammar context-sensitive-grammar

394
推荐指数
14
解决办法
6万
查看次数

C++中线程的简单示例

有人可以发布一个在C++中启动两个(面向对象)线程的简单示例.

我正在寻找实际的C++线程对象,我可以扩展运行方法(或类似的东西),而不是调用C风格的线程库.

更新 - 我遗漏了任何特定于操作系统的请求,希望无论谁回复都会回复使用跨平台库.我现在只是明白了.

c++ multithreading

391
推荐指数
7
解决办法
66万
查看次数

CMake中的调试与发布

在GCC编译的项目中,

  • 如何为每种目标类型(调试/发布)运行CMake?
  • 如何使用CMake指定调试和释放C/C++标志?
  • 我如何表示主要可执行文件将g++与一个嵌套库一起编译gcc

c c++ gcc cmake

390
推荐指数
6
解决办法
41万
查看次数