首页
关于
Search
1
云服务器使用
7 阅读
2
C语言基础知识
6 阅读
3
获取歌曲资源
2 阅读
4
一、QEMU简介
2 阅读
5
二、QEMU快速入门
2 阅读
默认分类
私密
统计
食
打扮自己?
游戏
qemu
嵌入式
生活常识
股票
人工智能AI
C/C++
编程语言
C
C++
JavaScript
C#
TypeScript
Java
Python
登录
Search
Typecho
累计撰写
18
篇文章
累计收到
0
条评论
首页
栏目
默认分类
私密
统计
食
打扮自己?
游戏
qemu
嵌入式
生活常识
股票
人工智能AI
C/C++
编程语言
C
C++
JavaScript
C#
TypeScript
Java
Python
页面
关于
搜索到
18
篇与
kokomi
的结果
2025-04-18
网格交易
1、定义网格交易法是一种设定价值中枢, 利用价格在网格上的走势形态进行交易。通常是在标的价格下跌至一个网格时进行买入, 在价格上涨至一个网格时, 进行卖出。也就是说, 网格交易是一种与价格趋势相反的交易方式。网格策略概括:1、股价的涨跌是不可预测的2、股价上涨就不断卖出套现, 股价下跌就不断买进股票网格交易模型分类大致可分为:对称等差模型、对称等比模型、对称指数模型、金字塔网格模型、等市值模型、趋势网格模型网格交易优缺点:1、优点简单、易操作入场时间不关键, 操作压力小胜率极高2、缺点无止损存在系统性风险资金使用效率低网格交易比较适合宽基指数ETF
2025年04月18日
0 阅读
0 评论
0 点赞
2025-03-14
低空经济
固态电池
2025年03月14日
0 阅读
0 评论
0 点赞
2025-03-02
GCC
gcc介绍GCC生成动态链接库如果想创建一个动态链接库,可以使用GCC的-shared选项,输入文件可以是源文件汇编文件或者目标文件;另外还需要结合-fPIC文件,-fPIC选项作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code),产生的代码中就没有绝对路径了,全部使用相对路径,可以被加载器加载到内存的任意位置且正确地执行例如,从源文件生成动态链接库:gcc -fPIC -shared fun.c -o libfun.so从目标文件生成动态链接库:gcc -fPIC -c fun.c -o func.o gcc -shared fun.o -o libfun.so-fPIC选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关代码
2025年03月02日
0 阅读
0 评论
0 点赞
2025-03-02
头文件和库文件的搜索路径
一个程序能正确编译、链接、运行需要满足3个条件:预处理时能找到头文件,连接时能找到库(静态库或动态库),运行时能找到库1、头文件的搜索路径头文件通常以.h结尾,有两种写法:双引号和尖括号(当然也可以直接写绝对路径,那就不会有查找路径的问题了),如下:#include <iostream> #include "demo.h"它们查找路径的顺序是有区别的,双引号形式会查找当前路径,而尖括号形式不会,具体查找顺序为:当前目录(仅双引号形式)编译时指定的路径(使用 CMake 编译时,target_include_directories 配置的搜索路径 > include_directories 配置的搜索路径;使用gcc编译时,gcc -I 指定的搜索路径)系统环境变量CPLUS_INCLUDE_PATH( C++ 中) 或 C_INCLUDE_PATH ( C 中)指定的目录gcc默认目录:gcc的默认目录可通过echo | g++ -v -x c++ -E -查看~: echo | g++ -v -x c++ -E - ... #include "..." search starts here: #include <...> search starts here: /usr/include/c++/11 /usr/include/x86_64-linux-gnu/c++/11 /usr/include/c++/11/backward /usr/lib/gcc/x86_64-linux-gnu/11/include /usr/local/include /usr/include/x86_64-linux-gnu /usr/include ...例如:这里会从 /usr/include/c++/11目录依次找到 /usr/include目录库文件的搜索路径
2025年03月02日
1 阅读
0 评论
0 点赞
2025-03-02
extern "C"
在.h文件中(函数的实现在对应的.c文件中),经常会看到这样的代码:#ifdef __cplusplus extern "C" { #endif ... 函数声明 ... #ifdef __cplusplus } #endif这样做的原因是什么呢?首先我们要弄清楚C++和C编译的区别,以 fun 函数为例:// fun.h中声明 int fun(int a, int b); // fun.c中实现 # include "fun.h" int fun(int a, int b){ return a + b; }fun函数在 C 的编译中会被编译成 _fun,在 C++ 中会被编译成 _fun_int_int;(C 对函数的编译在转换成汇编代码的时候只取函数名,而 C++ 是函数名加上参数类型;因此 C++ 支持函数的重载,而 C 不支持函数的重载);如果 cpp 文件调用了 .h(在.c文件中实现) 文件中的 fun 函数,编译链接时会按照_fun_int_int 来找,就会找不到fun函数;如果加上extern "C",C++就会按照_fun来找fun函数,就可以找到该函数;因此解决方法有以下两种(刚好对应extern "c"的使用场景):1、在cpp文件中使用extern "c"声明使用到的c函数// cpp文件中 extern "C"{ // 用extern "C"声明fun.cpp文件中的函数,以至于可以在cpp文件中使用 extern int fun(int a, int b); }2、在.h文件中加上extern "c"(推荐)extern "C"只是C++的关键字,不是 c 的,c 不认识extern "c",所以需要加上ifdef __cplusplus,这样c和cpp文件都可以顺利调用#ifdef __cplusplus extern "C" #endif ... // 函数声明 ... #ifdef __cplusplus } #endif
2025年03月02日
2 阅读
0 评论
0 点赞
1
2
...
4