c++ - 如何以正确的方式学习 C++ 编程

标签 c++ c memory gcc

<分区>

我一直在为我的学术类(class)使用 C/C++ 进行编程,并且印象中我已经很好地掌握了它。但最近我不得不在一个蓝牙应用程序中工作,该应用程序在 Linux 机器和嵌入式系统中具有服务器和客户端实现。我学习了 bluez 蓝牙 API、套接字/网络编程并对其进行了编码。

但是我遇到了很多问题,包括内存泄漏和段错误以及其他与内存相关的错误。随着代码变得越来越复杂,我几乎失去了对指针、线程和套接字的控制。这让我想知道我有很多东西要学,而他们在基本的 C/C++ 书籍中没有说。所以我想询问可用的资源,这些资源将有助于以专业的方式在 C/C++ 中更好地编写代码。特别是对于 Linux/Mac 环境(gcc 编译器)。

编辑:将 C 更改为 C++,因为它会造成困惑。

最佳答案

这个问题太大了,太大了。

简而言之,除了继续前进,您无能为力。您将多次遇到段错误。您唯一可以做的就是保持专注,孜孜不倦地寻找这些错误,并始终相信错误存在于您的代码中,而不是存在于编译器或您使用的某些可靠的库中。当您遇到困难时,请在此处发布您具体的、范围狭窄的问题并附上相关代码。届时我们会帮助您。

现在,从现在开始,这真的取决于您使用的是什么语言:C 还是 C++?这些是如此不同的词是不够的。如果您使用的是 C++,那么我给出的第一个建议是一直使用 RAII。如果您使用的是 C,那么请始终注意什么拥有该指针,何时何地释放它,最重要的是指针指向何处。此外,始终初始化您的数据,尤其是指针。没关系在时间之前表现,除了 big-oh 表现。

就是这样。除此之外,请发布您的具体问题,我们会解决。这才是正确的学习方式™。

关于c++ - 如何以正确的方式学习 C++ 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842180/

相关文章:

c++ - DWORD 和 DWORD32 之间的区别

c++ - LLVM out of source pass 构建 : Loadable modules not supported (on Linux)

c - 二维数组数组 C

c++ - MPI 中的静态计算和动态计算有什么区别?

unix - 操作系统中的共享内存段

c++ - 全局关闭 C++ new 运算符异常

c++ - 关于成员函数指针的使用(和有用性)与直接调用成员函数

java - 为什么unix和Java运行时显示的统计数据存在差异

检查字符串是否未分配

memory - 将值添加到状态数组的最佳方法是什么