草庐IT

c++ - 学习C或C++会对我的计算机造成危险吗?

Closed.Thisquestionisopinion-based。它当前不接受答案。想改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。3年前关闭。Improvethisquestion刚开始学习C或C++时,是否存在诸如危险知识之类的东西?换句话说,我“偶然地”编写并编译格式化硬盘驱动器,使操作系统无法使用或在更坏的情况下自动删除计算机上的随机文件的代码段的可能性是什么?名副其实的东西格式C:/要么rm-rf/如果我刚开始修改低级C代码,甚至弄乱了库,那么需要注意一些基本知识?如果实际上潜伏着这些潜在危险,有什么好的策略可以使开发环境在日常系统中处于

c++ - 学习C或C++会对我的计算机造成危险吗?

Closed.Thisquestionisopinion-based。它当前不接受答案。想改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。3年前关闭。Improvethisquestion刚开始学习C或C++时,是否存在诸如危险知识之类的东西?换句话说,我“偶然地”编写并编译格式化硬盘驱动器,使操作系统无法使用或在更坏的情况下自动删除计算机上的随机文件的代码段的可能性是什么?名副其实的东西格式C:/要么rm-rf/如果我刚开始修改低级C代码,甚至弄乱了库,那么需要注意一些基本知识?如果实际上潜伏着这些潜在危险,有什么好的策略可以使开发环境在日常系统中处于

c++ - 使用 CMake 将几个静态库合并为一个

我有一个与described非常相似的问题在cmake邮件列表中,我们有一个依赖于许多静态库的项目(所有这些库都是从各个子模块中的源代码构建的,每个子模块都有自己的CMakeLists.txt描述每个库的构建过程),我想将它们组合成一个静态库发布给消费者的库。我的库的依赖项可能会发生变化,我不想让这些变化进一步加重开发人员的负担。简洁的解决方案是将所有库捆绑到一个库中。有趣的是,当将目标设置为mylib并像这样使用它时,target_link_libraries命令并没有结合所有的静态数据。.target_link_libraries(mylibabcd)但是,奇怪的是,如果我将myl

c++ - 使用 CMake 将几个静态库合并为一个

我有一个与described非常相似的问题在cmake邮件列表中,我们有一个依赖于许多静态库的项目(所有这些库都是从各个子模块中的源代码构建的,每个子模块都有自己的CMakeLists.txt描述每个库的构建过程),我想将它们组合成一个静态库发布给消费者的库。我的库的依赖项可能会发生变化,我不想让这些变化进一步加重开发人员的负担。简洁的解决方案是将所有库捆绑到一个库中。有趣的是,当将目标设置为mylib并像这样使用它时,target_link_libraries命令并没有结合所有的静态数据。.target_link_libraries(mylibabcd)但是,奇怪的是,如果我将myl

c++ - 如何在 C++ 中添加库?

是的,这是一个愚蠢的问题...但是在我的两个C++类中,我们根本没有这样做(除了本地库:iostream、iomanip等)...我的问题是任何人都可以提供链接这给出了将库添加到C++的一般解释?我确实知道#include是什么意思;只是我对C++IDE中的链接器/目录一无所知。这么长的问题很短;我可以大致解释一下C++中用于链接库的术语吗?我正在使用带有MinGW的c::b。 最佳答案 This您可能会感兴趣,但这里有一个简短的版本:当您组装.cpp、.c或任何文件时,每个翻译单元(即每个文件)都会生成一个目标文件。创建最终可执行

c++ - 如何在 C++ 中添加库?

是的,这是一个愚蠢的问题...但是在我的两个C++类中,我们根本没有这样做(除了本地库:iostream、iomanip等)...我的问题是任何人都可以提供链接这给出了将库添加到C++的一般解释?我确实知道#include是什么意思;只是我对C++IDE中的链接器/目录一无所知。这么长的问题很短;我可以大致解释一下C++中用于链接库的术语吗?我正在使用带有MinGW的c::b。 最佳答案 This您可能会感兴趣,但这里有一个简短的版本:当您组装.cpp、.c或任何文件时,每个翻译单元(即每个文件)都会生成一个目标文件。创建最终可执行

c++ - 在 64 位中进行组合乘除运算的最准确方法是什么?

在32位和64位程序(在VisualC++中)中,我可以对64位整数进行乘除运算的最准确方法是什么?(如果溢出,我需要结果mod264。)(我正在寻找类似MulDiv64的东西,除了这个使用内联汇编,它只适用于32位程序。)显然,转换为double并返回是可能的,但我想知道是否有一种不太复杂的更准确的方法。(即我不是在这里寻找任意精度的算术库!) 最佳答案 由于这被标记为VisualC++,我将给出一个滥用MSVC特定内在函数的解决方案。这个例子相当复杂。它是GMP和java.math.BigInteger用于大除法的同一算法的高度

c++ - 在 64 位中进行组合乘除运算的最准确方法是什么?

在32位和64位程序(在VisualC++中)中,我可以对64位整数进行乘除运算的最准确方法是什么?(如果溢出,我需要结果mod264。)(我正在寻找类似MulDiv64的东西,除了这个使用内联汇编,它只适用于32位程序。)显然,转换为double并返回是可能的,但我想知道是否有一种不太复杂的更准确的方法。(即我不是在这里寻找任意精度的算术库!) 最佳答案 由于这被标记为VisualC++,我将给出一个滥用MSVC特定内在函数的解决方案。这个例子相当复杂。它是GMP和java.math.BigInteger用于大除法的同一算法的高度

c++ - 如何在编译时提取没有路径和后缀的源文件名?

同时使用带有-std=c11的gcc和带有-std=c++14的g++。例如对于名为src/dir/Hello.cxx的文件它应该扩展为例如:constcharbasename[]="Hello";或constcharbasename[]=getStaticBasename(__FILE__);在哪里getStaticBasename()是一个宏(用于C源代码)或constexpr函数(用于C++源代码),结果为“Hello”。我必须避免从__FILE__中拆分字符串在运行时,因为路径和后缀不得以任何方式编译到可执行文件中。解决方案必须不依赖boost等大型库。因为我没有生成文件,所以

c++ - 如何在编译时提取没有路径和后缀的源文件名?

同时使用带有-std=c11的gcc和带有-std=c++14的g++。例如对于名为src/dir/Hello.cxx的文件它应该扩展为例如:constcharbasename[]="Hello";或constcharbasename[]=getStaticBasename(__FILE__);在哪里getStaticBasename()是一个宏(用于C源代码)或constexpr函数(用于C++源代码),结果为“Hello”。我必须避免从__FILE__中拆分字符串在运行时,因为路径和后缀不得以任何方式编译到可执行文件中。解决方案必须不依赖boost等大型库。因为我没有生成文件,所以