- 博客(4)
- 收藏
- 关注
原创 记录一个非常有趣的题目好 强制修改const变量值
const int i=10; int* j=(int*)&i; *j=20; printf("%d,%d\n",*j,i); 问题:在C和C++中,输出的结果分别是什么? c中: 20 20 c++中: 20 10 原因是因为c++中有个常量折叠概念,所有的const变量都会被放在编译器符号表中,取const变量的时候会直接从表中取值,而不会去内存中取值。(编译优化) 另外说一点,这种方式修改的const变量,只能是局部变量,不能是全局变量或静态变量。 如果是全局区的变量,编译不会出现问
2020-07-12 00:27:35 225
原创 C接口实现任务记录
C接口实现任务记录 main—>c接口---->c++接口 由c接口的实现记录任务taskID //main.cc # include "c_opt.h" # include <iostream> int main() { int task1 = 11; int task2 = 22; int task3 = 33; //传入taskid用...
2019-12-20 17:31:54 438
原创 动态库的多重链库方法
动态库的多重链库方法 因项目需要将c++接口进行封装成c接口调用,实现可执行文件(a.out)去链接b.so(封装的c接口),并且b.so依赖于c.so(c++接口)。 方法一:a.out隐式加载b.so,b.so隐式加载c.so; 源代码: //cplus.cc 记为c++接口的源文件,编译生成libcplus.so //g++ cplus.cc -o libcplus.so -shared...
2019-12-12 20:23:27 228
原创 linux加载动态库的两种方式
linux加载动态库的两种方式 linux中加载动态库分为运行时动态加载和启动时静态加载两种方式。 首先,写一个简单的test.cc (1)//test.cc //编译动态库 g++ test.cc -o libtest.cc -shared -fPIC #include int dosomethings(char* ch, int a, std::string s) { std::cout &...
2019-12-12 10:53:46 957
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人