一个例子简单学习gcc、makefile、程序执行过程
test.h 123456#pragma once#include<stdio.h>//函数的声明extern void show(); test.c 123456#include "test.h"void show(){ printf("hello");} main.c 12345678#include "test.h"int main(){ show(); return 0;} 形成main.c的可执行程序hello: 1gcc -o hello main.c test.c 注意: -o选项后面紧跟着的名称为可执行程序的名称,-o + ”可执行程序名称“可以出现在依赖对象的前面,也可以在后面。比如gcc main.c test.c -o hello也是可以的 gcc指令用于编译形成.c文件的可执行程序。g++指令用于编译形成.cpp或者.c文件的可执行程序。g++向下兼容,但是gcc只能编译.c文件。g++的大部分指令与gcc一致 这里可能会产生 ...
操作系统作业:各大系统的区别
试从技术架构、应用场景、开放性、用户界面、价格(包括但不限于) 等方面比较Windows、安卓、Linux. Mac os.鸿蒙操作系统。(第一行写明你采用何种方式完成该项作业)。 技术架构:Windows系统架构:Windows系统架构采用分层架构,自下而上分为内核态和用户态,Windows的内核为混合内核(本质上为宏内核架构,并非微内核)。 内核态自下而上分为硬件抽象层(HAL)->内核和驱动层 ->执行体,以及窗口管理系统。用户态主角是NTDLL抽象层,以及各种进程,如:底层的系统支持进程->服务进程->用户应用程序。如下图所示:图片来源:51CTO博客 Windows、Linux、macOS三大系统都基本是由Unix系统衍生而来的 Windows操作系统借鉴了Unix“树”的思想,Linux借鉴了Unix操作系统的思想,而macOS则是Unix的衍生系统之一,是苹果公司基于FreeBSD操作系统的改造,苹果操作系统只不过是UNIX的一个细小分支而已。 Linux系统架构:Linux 只是指操作系统的核心, 并没有各种应用程序, 如网络工具、多媒体 ...
Makefile初学指南
前言C语言程序从代码到可执行文件(*.exe)需要经过预处理、编译、汇编和链接这几个步骤。每当修改源文件(*.c)或源文件所包含的头文件(*.h)后,我们都需要重新执行上述几个步骤,以得到修改后的程序。 通常将预处理、编译和汇编这三个步骤统称为编译。 一个项目通常有多个源文件,如果只修改其中一个,就对所有源文件重新执行编译、链接步骤,就太浪费时间了。因此十分有必要引入 Makefile 工具:Makefile 工具可以根据文件依赖,自动找出那些需要重新编译和链接的源文件,并对它们执行相应的动作。 编译链接过程 开始前的准备本文章目的在于帮助你理解和掌握Makefile的编写方法和编写技巧,在开始阅读和动手编写Makefile前,你可能需要准备一下环境。 本篇文章的示例运行在wsl2上(Windows Subsystem for Linux 2),我的系统信息如下: 123456gee@JiPing_Desktop:~/workspace/test$ lsb_release -aNo LSB modul ...
CentOS & macOS终端配置
CentOS & macOS终端配置终端美化(两系统通用)1.设置默认 shell 为 zsh查看系统所有的 shell 列表 1cat /etc/shells 设置默认 shell 为 zsh,它功能比较多,会好使一些。 1chsh -s /bin/zsh 2.安装 oh-my-zshoh-my-zsh 是一款社区驱动的命令行工具,它基于 zsh 命令行,提供了主题配置,插件机制,大大提高了可玩(用)性。它的 Github 地址为:https://github.com/robbyrussell/oh-my-zsh 我们可以使用 curl 安装: 1sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 上面地址不行的话,可以尝试下面这个: 1sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/ins ...
【怪物猎人冰原】武器介绍_片手
[toc] 前言本期文本攻略,可以搭配相关动作演示视频对比观看,视频已内嵌在文章最后,也可点击视频下方链接进入原地址观看, 简介和定位 在冰原片手剑的最后一次更新之后,片手剑的JR伤害提升了百分之四十,这让片手剑从一个伤害不错机动性强的武器一跃成为了高伤害高机动性的武器。凭借着JR“一刀一个飞圆斩“替代虫棍成为了新一代完美武器(雾。 片手剑,又名单手剑,猎人在装备时,左手持剑,右手持盾,盾牌的防御性能为所有近战带盾武器的最低,防御性能:片手剑<盾斧<长枪&铳枪。在实战中,片手剑的盾牌更像是一种输出手段,在很多招式中都使用了盾牌攻击,盾牌攻击带有一定的眩晕能力。防御只是在很少一部分时间下是用来抵挡怪物的攻击的(因为挡也挡不住),更多情况下是作为派生动作的前置动作。片手剑是一个很吃机动性的武器,实际上,轻武器都很吃机动性,片手剑的优势体现在机动性和攻击性的相互转化,比如后撤步回避时可派生攻击动作,防御派生攻击动作,翻滚派生后撤步派生攻击动作等。 片手剑的一大痛点是,短。短到通过肉眼判断时,武器明明是可以打中怪物的,但是实际上竟然打不到。在使用片手剑的时候 ...
插入b站视频
在b站视频点击分享,获取“嵌入代码” 如上图,获取的嵌入代码为: 1<iframe src="//player.bilibili.com/player.html?aid=247120140&bvid=BV1Av411a7bt&cid=307398204&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe> 设置一下视频的长度、宽度、画质、弹幕开关、填充情况,并且关闭自动播放,如下: 1<iframe src="//player.bilibili.com/player.html?aid=247120140&bvid=BV1Av411a7bt&cid=307398204&page=1&high_quality=1&d ...
主题设置
在晚上码字的时候如果使用白色的主题背景会感觉对眼睛不是很友好,因此可以选择一些暗黑风格的主题来达到更舒适的效果 打开typora的设置,转到外观,如果对于初始的几种主题不满意可以选择获取主题,不过在此之前先点击”打开主题文件夹“,进入到主题文件夹中 这几个后缀为.css的文件即是主题文件 windows中会自动匹配类型,我的电脑上给.css文件匹配的类型是typora类型,但是本质上是.css 回到设置中来,打开”获取主题“,进入到官方主题网站(可能需要科学上网) 选择喜欢的主题进行下载 此处以第一个”GitHub Dark Themes“为例,进入之后点击下载 之后将下载好的压缩文件进行解压,将文件夹复制到之前打开的本地主题文件夹里theme里 然后将这个主题文件夹Typora-GitHub-Themes-main里面后缀为.css的文件(或者显示为typora类型的文件)复制或者拖拽到theme文件夹中,这个文件即是主题文件,并且已经可以在Typora中应用了 有时候一个主题也有不同的风格,比如这个主题就有三种风格 可以选择自己喜欢的放入theme ...
插入图片
插入图像与插入链接的语法基本一样,就是在最前面加了一个!字符 1 比如: 也可以直接将图片复制或者拖拽进来,配合上传到图床的功能,直接在图床中生成链接 比如:
文字高亮
文字高亮Typora设置中打开文字高亮 有两种高亮方式,一是按照markdown语法 二是按照html语法,在需要高亮的部分加上 第一种方式在有些网站比如个人博客上无法识别 自定义文字高亮颜色
如何使用磁力链接
等待更新中….
建立字符表_有效的字母异位词
[题目来源](242. 有效的字母异位词 - 力扣(LeetCode)) 常规的方法:对于两个字符串进行排序,然后判断两个字符串是否相等(可以直接判断字符串是否相等,if s==t return true) 一种奇妙的思路:建立字符表 两个字符串中的字符无非就是26个字母。建立一个容量为26的数组,内容全部初始化为0.如果s中存在某一字母,就在相应的位置上+1,如果t中存在某一字母,就在相应的位置上-1,最后如果数组中还是全为0,说明s和t中的内容正好相互抵消,否则说明s和t不是有效的字母异位词。(感觉有点像摩尔投票法中的支持者打架) 1234567891011121314bool isAnagram(string s, string t) { int num[26]={0}; if(s.length()!=t.length()) return false; for(int i=0;s[i]!='\0';i++){ ...
摩尔投票法_多数元素(绝对众数)
[题目来源](408 时间复杂度为 O(n)、空间复杂度为 O(1) - 多数元素 - 力扣(LeetCode)) 一般有以下三种思路: 暴力求解,从第一个元素开始记录,遇到与第一个元素值相同的元素就计数+1,当某个元素的个数大于等于n/2的时候,说明就是这个元素最多 先排序,后返回容器中第n/2个元素 摩尔投票法: 解决的问题是如何在任意多的候选人(选票无序),选出获得票数最多的那个。 (解决绝对众数的问题:如果一个元素出现的次数大于等于其他所有数出现的次数之和,那么这个数就是绝对众数,也就是说如n个数里如果有一个数的数量大于等于n/2,这个数就是绝对众数) 形象化描述: 想象着这样一个画面: 会议大厅站满了投票代表,每个都有一个牌子上面写着自己所选的候选人的名字。然后选举意见不合的(所选的候选人不同)两个人,会打一架,并且会同时击倒对方。显而易见,如果一个人拥有的选票比其它所有人加起来的选票还要多的话,这个候选人将会赢得这场“战争”,当混乱结束,最后剩下的那个代表(可能会有多个)将会来自多数人所站的阵营。 但是如果所有参加候选人的选票都不 ...









