找到 34423 篇文章,关于 编程

为什么链接库的顺序有时会导致 GCC 中的错误?

George John
更新于 2019-07-30 22:30:25

127 次查看

基本上,这种错误源于编译阶段的链接器。链接器的默认行为是在当前程序需要时从归档库中获取代码。为了正常工作,库必须按顺序存在。我们可以说它必须以“调用者在被调用者之前”的形式存在。可以通过使用标志选择非默认行为来解决此问题,但在此过程中,链接可能需要更长的时间。否则,可以通过正确排序库来解决。加载程序和 tsort 这两个可以帮助重新排列和纠正... 阅读更多

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

Arjun Thakur
更新于 2019-07-30 22:30:25

225 次查看

在这篇文章中,您可以获得一些关于在哪里可以购买和查看一些当前和过去的 C/C++ 标准的免费草稿的详细信息。C 文档 C11:198 瑞士法郎 (https://www.iso.org/standard/57853.html) 公开发布 (http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1570.pdf) 维基百科链接 (https://en.wikipedia.org/wiki/C11_(C_standard_revision)) C99:无法购买 (https://www.iso.org/standard/29237.html) 公开发布 (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf) 维基百科链接 (https://en.wikipedia.org/wiki/C99) C90、C89、ANSI C、标准 C 维基百科页面:(https://en.wikipedia.org/wiki/ANSI_C) C++ 文档 C++14:198 瑞士法郎 (https://www.iso.org/standard/64029.html) 基于 (https://www.iso.org/standard/29237.html) 维基百科链接 (https://en.wikipedia.org/wiki/ANSI_C) C++11:无法购买 (https://www.iso.org/standard/50372.html) 公开发布 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf) 维基百科链接 (https://en.wikipedia.org/wiki/C%2B%2B11) C++03 维基百科页面:(https://en.wikipedia.org/wiki/C%2B%2B03) C++89 维基百科页面:(https://en.wikipedia.org/wiki/C%2B%2B) 阅读更多

在 C/C++ 中何时可以使用前向声明?

Chandu yadav
更新于 2019-07-30 22:30:25

745 次查看

在 C++ 中,前向声明让声明后面的代码知道存在名为 Person 的类。当编译器看到这些名称被使用时,这会满足编译器。稍后,链接器将找到类的定义。示例代码类 Person;void myFunc(Person p1) { // ... } 类 Person { // 类的定义在这里 };所以在这种情况下,当编译器遇到 myFunc 时,它会知道它将在代码中的某个地方遇到这个类。这可以用于将使用该类的代码放置/包含在包含该类定义的代码之前的情况。

C++ 程序实现分段筛法生成指定范围内的素数

Krantik Chavan
更新于 2019-07-30 22:30:25

872 次查看

这是一个 C++ 程序,用于实现分段筛法生成指定范围内的素数。分段筛法首先使用简单筛法找到小于或等于 √(n) 的素数。该算法的思想是将范围 [0 ... n-1] 分成不同的段,并逐一计算所有段中的素数。算法开始 创建函数以使用埃拉托色尼简单筛法查找小于限制的所有素数。 使用分段筛法查找给定范围内的所有素数 A) 使用简单筛法计算所有小于或等于 high 的平方根的素数 ... 阅读更多

C++ 程序实现 Atkin 筛法生成指定范围内的素数

Krantik Chavan
更新于 2019-07-30 22:30:25

412 次查看

这是一个 C++ 程序,用于实现 Atkin 筛法生成指定范围内的素数。Atkin 筛法是一种用于查找指定整数之前的所有素数的现代算法。算法开始 创建一个结果列表,其中包含 2、3 和 5。 使用 false 值初始化筛数组 如果以下之一为真,则将 siev[n] 标记为 true: a) n = (4*x*x) + (y*y) 有奇数个解 n % 12 = 1 或 n % 12 = 5。 b) n = (3*x*x) + (y*y) 有奇数... 阅读更多

为什么在 C/C++ 中 struct 的 sizeof 不等于每个成员的 sizeof 之和?

Arjun Thakur
更新于 2019-07-30 22:30:25

764 次查看

sizeof() 获取的 struct 类型元素的大小并不总是等于每个单独成员的大小。有时编译器会添加一些填充以避免对齐问题。因此大小可能会改变。当结构成员后面跟着一个更大尺寸的成员或在结构的末尾时,会添加填充。不同的编译器有不同类型的对齐约束。在 C 标准中,总对齐结构取决于实现。情况 1 在这种情况下,double z 是 8 字节长,比 x (4 字节) 大。因此会添加另外 4 字节的填充。... 阅读更多

C++ 中的复制省略和返回值优化是什么?

George John
更新于 2019-07-30 22:30:25

231 次查看

复制省略也称为复制省略。这是编译器优化技术之一。它避免了对象的无谓复制。几乎所有当前的编译器都使用这种复制省略技术。让我们通过一个示例代码来了解它是如何工作的。示例代码#include using namespace std; class MyClass { public: MyClass(const char* str = "\0") { // 默认构造函数 cout

如何在 Linux 上分析运行的 C++ 代码?

Ankith Reddy
更新于 2019-07-30 22:30:25

370 次查看

在 Linux 平台上,有许多用于分析 C++ 程序的出色分析工具。Valgrind 就是其中之一。它被广泛使用。它是一个用于内存调试、内存泄漏检测和分析的编程工具。我们可以通过将二进制文件传递给它并将工具设置为 callgrind 来使用 Valgrind。首先通过编译程序生成二进制文件 $ g++ -o abc.cpp abc 现在使用 valgrind 对其进行分析 $ valgrind --tool=callgrind ./abc 这将生成一个名为 callgrind.out.x 的文件。您可以使用名为 kcachegrind 的工具读取此文件。如果您使用的是 gcc,则可以使用内置的分析工具 gprof。您可以... 阅读更多

为什么在循环条件中使用 iostream::eof 被认为是错误的?

Chandu yadav
更新于 2019-07-30 22:30:25

153 次查看

在循环中使用 iostream::eof 被认为是错误的,因为我们还没有到达 EOF。所以它并不意味着下一次读取会成功。当我们想使用 C++ 中的文件流读取文件时。当我们使用循环写入文件时,如果我们使用 stream.eof() 检查文件结尾,我们实际上是在检查文件是否已到达结尾。示例代码#include #include using namespace std; int main() { ifstream myFile("myfile.txt"); string x; while(!myFile.eof()) { myFile >> ... 阅读更多

C++ 程序实现埃拉托色尼筛法生成指定范围内的素数

Daniol Thomas
更新于 2019-07-30 22:30:25

2K+ 次查看

这是一个 C++ 程序,用于实现埃拉托色尼筛法生成指定范围内的素数。在这种方法中,一个整数数组的所有元素都初始化为零。它遵循在嵌套循环内将每个非素数元素的索引标记为 1 的位置。素数是索引标记为 0 的那些。算法开始 声明一个大小为 n 的数组并将其初始化为零 声明长度、i、j 读取长度 对于 i = 2 到 n-1 做 对于 j = i*i 到 n-1 做 Arr[j-1]=1 完成 ... 阅读更多

广告

© . All rights reserved.