- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 C++ | const用法(与指针结合/类型转换)
const用法在C代码中const修饰的量,可以不用初始化,C中不叫常量,而叫常变量,不能作为左值被改变,可以通过指针找到常变量的内存地址改变其值,常变量不可做为数组的下标。在C++中,必须初始化,叫常量。与C不同,C中const被当作一个变量来编译生成指令,而C++,所有出现const常量名字的地方都被常量的初始化替换了。在C++中,当const被一个变量初始化(int a = 10; const int b = a;)时,而不是被立即数初始化,则他退化成常变量,与C语言一样,是一个变量。(注意
2022-02-24 18:11:30
2278
2
原创 C++ | 详解函数重载
什么是函数重载?一组函数,其中函数名相同,参数列表的个数或类型不同,那么这一组函数就成为函数重载一组函数要称得上函数重载,一定是处在同一个作用域中函数名同,参数列表同,返回值不同,不叫重载,因为函数符号都相同函数重载是通过函数符号来判断的,如void func(int a);和void func(const int a);这两个函数名相同,参数都为int型,生成的函数符号伟func_int所以不算函数重载C++在C的基础上支持函数重载,是因为C++中函数会在汇编时产生函数符号,一般由函数名+参
2022-02-17 17:47:11
653
原创 C++ | inline内联
- 调用普通函数调用过程有参数压栈,函数栈帧的开销和回退等,存在函数调用的开销。- inline函数在编译过程中,没有函数调用的开销,在函数的调用点直接把函数的代码进行展开处理inline函数不再生成相应的函数符号,而普通函数会生成函数符号,如int sum(int a, int b);会生成sum_int_int的函数符号。并不是所有的inline函数都会被编译器处理成内联函数(如递归)。在debug版本中,inline不起作用,只有在release版本中起作用。注意:函数被声明为内联函
2022-02-16 17:13:22
581
原创 程序编译链接原理
编译过程预处理:处理#开头的指令编译:将.cpp翻译成.s的汇编代码汇编:输出符号表,将.s翻译成.o的机器代码,二进制可重定位的目标文件(.*o)链接:编译完成所有的.o文件,以及静态库文件(*.a,.*lib)链接链接详细过程将所有.o文件的代码段合并,符号表合并后,进行符号解析(所有对符号的引用/UND/都要找到符号定义的地方)符号的重定向(给所有符号分配虚拟地址)生成xxx.exe/a.out可执行文件举例int gdata = 10;int sum(int a,int
2022-02-14 13:50:44
303
2
原创 函数调用堆栈的过程
int sum(int a,int b){//函数左括号:给当前函数开辟栈帧空间//函数右括号:归还栈空间,并回到原来调用它的函数 int temp=0; temp = a+b; return temp;}/*sum的汇编代码push ebp;mov ebp,esp; 将ebp指向esp的位置,并将ebp的原地址保存sub esp,4Ch; 开辟栈帧空间mov dword ptr[ebp-4],0; 存temp=0mov eax,dword ptr[ebp+0Ch];
2022-02-11 12:55:18
803
2
原创 Android/Java获取百度UNIT对话API服务
获取token类AuthService.javapackage com.example.myapp.util;import org.json.JSONObject;import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.List;import java.util.Map;/
2021-09-21 08:45:15
536
原创 Android 随机生成验证码
Code.javapackage com.example.myapp;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import java.util.Random;public class Code { /** * 随机数数组 * 去除了易混淆的 数字 0 和 字母
2021-08-25 08:35:18
467
原创 libevent——高并发服务器
void listener_cb(struct evconnlistener *listener, evutil_sockect_t fd, struct sockaddr *addr, int socklen, void *arg
2021-08-25 08:19:12
650
原创 (Linux-OS实验-求100000个浮点数之和)信号量与共享内存
信号量与共享内存求100000个浮点数的和。要求:(1)随机生成100000个浮点数(父进程);(2)然后创建4个后代进程,分别求25000个浮点数的和;(3)父进程对4个后代进程的结果求和;(4)进程间用共享内存进行通信,用信号量实现同步和互斥。要求在创建子进程之后,由父进程创建共享缓冲区和信号量。#include <stdio.h>#include <sys/mman.h> //共享内存#include <semaphore.h> //信号量#
2020-06-06 17:42:19
3952
瑞天图书管理系统分析与设计
2020-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅