- 博客(30)
- 资源 (4)
- 收藏
- 关注
原创 Ubuntu 16.04 菜单栏 换位置 挪到左边 挪到下边
Ubuntu 16.04 菜单栏 换位置 挪到左边 挪到下边Ubuntu菜单栏的位置可以调 到左侧 或者底部调整到底部$ gsettings set com.canonical.Unity.Launcher launcher-position Bottom调整到左侧$ gsettings set com.canonical.Unity.Launcher launcher-position Left...
2021-01-11 15:33:17
471
1
原创 c语言 某位清零 获取某位值
将某位/几位清零#include <stdio.h>int main(){ int num=0; //需要清零的数 int bit; //需要清零的位数 int zero_sit;//清零的位置 printf("input num\n"); printf("input bit\n"); printf("input zero_sit\n"); scanf("%x",&num); scanf("%x",&bit); scanf("%x",&zer.
2020-10-23 16:29:08
4216
转载 undefined reference to
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func’关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。链接时缺失了相关目标文件(.o)测试代码如下:然后编译。gcc -c test.cgcc –c main.c得到两个 .o 文件,一个是 main.o,
2020-08-15 16:37:03
274
转载 [Linux] vim的高亮查找操作 reference : http://blog.chinaunix.net/uid-20732478-id-763411.html 使用了VIM这么久,
使用了VIM这么久,却一直无法牢记一些基本的操作指令。今天查找一个关键字时,想不起来怎么查找“下一个”,于是google之并解决,顺便把有用的都贴过来罢。查找指令:/xxx 往下查找?xxx 往上n 下一个:set hls 打开高亮:set nohls 关闭高亮下面是查找替换,虽然我至今没使用过这一功能 - -因为网上太多了,所以转来也不知道原创是谁1,简单替换表达式替换命令可以在全文中用一个单词替换另一个单词::%s/four/4/g“%” 范围前缀表示在所有行中执行替换。最
2020-08-05 15:46:47
195
原创 pthread_create()函数参数详解和传参的使用
题外话:用的vscode编译的程序。发现一个问题,就是编译的时候提示没有gcc,但是应该是安装了的。打开命令端,输入gcc -v,提示没有gcc。因为安装了qt。默认的就有gcc,所以就打开qt的安装路径下C:\Qt\Qt5.12.4\Tools\mingw730_64\bin,路径下文件如下图所示然后直接把该路径添加到环境变量,就可以使用gcc 和g++了贼有意思,gcc也能编译,g++也能编译。在linux下通过gcc编译c程序,g++编译c++程序,另外就是也没有加-lpthread连接
2020-07-22 20:04:42
8483
原创 VMware 物理内存不足,无法使用配置的设置开启虚拟机
VMware 物理内存不足,无法使用配置的设置开启虚拟机如下图所示:解决方法:修改下列路径中的文件C:\Documents and Settings\All Users\Application Data\VMware\VMware Workstation 或 C:\ProgramData\VMware\VMware Workstation 路径下的 config.ini,把 “prefvmx.useRecommendedLockedMemSize = ”设为"TRUE" “prefvmx.minVm
2020-06-10 16:28:41
2203
1
原创 Ubuntu ftp 服务器配置
一、安装如果是ubuntu环境下的话,安装是很简单的,只需输入如下命令:安装sudo apt-get install vsftpd安装完成后可以察看下服务状态(其实安装完成了就会提示已经在跑了)sudo service vsftpd status二、配置文件其实我用到的文件只有三个+ 1. /etc/vsftp.conf(主配置文件)+ 2. /etc/vsftp.chroot_list(可访问用户列表,这个在我这里貌似不是已有的,我是手建的,这个察看上面那个配置文件就会发现,配置文件
2020-05-30 18:53:49
309
原创 玩个多级指针
定义:一个指向指针变量的指针变量,称为多级指针。对于指向处理数据的指针变量称为一级指针变量,简称一级指针。而把指向一级指针变量的指针变量称为二级指针变量,简称二级指针。二级指针变量的说明形式:<存储类型> <数据类型> ** <指针名>总结:注意加粗的部分,指向指针变量!一定要是变量。如果指向的是数组名(也就是数组的首地址,会报警告,因为数组名是地址常量,后边有例子)。#include <stdio.h>int main(int argc, c.
2020-05-21 17:43:54
160
原创 c 函数值传递
首先要清楚什么叫函数的形参和实参。形参:任何函数实现的参数都是形参。实参:调用函数时候,传入的参数是实参。实参可以给形参传参,形参不能够给实参传参。#include <stdio.h>void exchange(int a,int b){ int t; printf("&a = %p,&b = %p\n",&a,&b ); t = a; a = b; b = t; printf("a = %d,b = %d\n",a,b );
2020-05-20 15:41:44
275
原创 c语言 const关键字
const修饰变量(非指针),使变量常量化,也就是使变量不能够被修改eg:const int a = 10; int const a=10;此时a只能是10,不能被改变了。如果没有用const修饰,a可以被赋值,比如a=20;const修饰指针变量,会使指针变量常量化,但是要注意const的位置1.const int *p 此时const修饰的是指针指向的内容,限制通过指针去改变指向的内容,但是内容本身可以修改,只是不能通过指针修改。指针的指向也是可以改变。eg:#include <st.
2020-05-20 10:20:35
149
原创 字符串处理函数
strcpy函数:首先看一个字符串拷贝函数的用法:#include <stdio.h>#include <string.h>int main(int argc, char const *argv[]){ char p[] = "hello"; char *a = p; char *q = "world"; strcpy(p,q); printf("%s\n",p ); return 0;}打印结果就是world。注意到两点,1.目的地址是一个
2020-05-15 17:32:42
154
原创 一个冒泡排序引发的 ‘思考’
一个冒泡排序引发的 ‘思考’首先看一个冒泡排序的代码,如下:#include <stdio.h>#if 1void maopao(int a[]) //此处形参等同于int *a{ printf("%ld\n",sizeof(a)/sizeof(int));//调试打印 for(i=0;i<n;i++) //对比趟数 { for(j=i;j<n;j++) //对比次数,从小到大排列 { if(a[j] > a[j+1]) { temp =
2020-05-15 16:36:45
195
原创 linux下类everthing搜索工具
类似Windows上的everything,在Windows上是谁用谁知道.安装链接:https://launchpad.net/~christian-boxdoerfer/+archive/ubuntu/fsearch-daily?field.series_filter=bionic官方安装没有看到安装名称是什么,试了一圈都不行,后来终于找到了.步骤:添加PPAsudo add-apt...
2020-04-03 15:48:54
876
原创 c代码规范
开头以/**/说明,中将两个*可以将说明对齐宏定义和函数声明对其。宏定义的时候最好用一个空格加两个tab键,因为不同的宏名字长度不一样,会造成后边的变量不对齐。函数声明的时候,要一个tab键。因为void和int长度不一样,和long,unsigned int长度更不一样定义变量的时候要对齐。函数名不要顶头写,让注释和#if 0 #endif调试的顶头写。如果有多个if en...
2020-03-27 18:39:03
154
原创 匈牙利命名规则
匈牙利命名规则匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述(对象描述的时候第一个字母要大写),其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。eg:class xx{public:private: string m_strName; //m_表示c++类成员,str表示...
2019-12-20 16:09:16
677
转载 c语言日志功能实现
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#ifdef WIN32#include <windows.h>#else#include <unistd.h> // linux下头文件#endif ...
2019-07-18 14:14:55
577
原创 linux 根文件系统的制作过程
文件系统制作步骤1,配置busybox1)下载源码2)进入busybox,make menuconfig 选配2,制作根文件基本目录(make进行编译,Make install 把它编译成工程文件,方便我们使用将所有相关文件都放到_install目录下)3,创建其他需要的目录(mkdir dev etc mnt proc var tmp sys root)4,库目录设置(拷贝交叉编译工...
2019-02-21 18:11:22
339
原创 链表(未完成笔记)
单链表(预留)双向链表(预留)List item为什么需要双链表,单链表只有一个指向下一元素的指针,不能访问前一节点的元素,逆序访问及其费时。定义:在单链表的基础上增加了一个指向前一节点的指针。双向循环链表(预留)...
2019-01-17 16:35:28
136
原创 I2C
I2C时序I2C是一种接口,硬件连接是通过SDA和SCL两条线,传输的时候遵从I2C协议。上图中:master主设备,由soc担当。SCL提供时钟,SDA提供数据。驱动是站在master角度读写设备的。所有的I2C从设备都在一条线上,每个从设备都有自己的从设备地址。当主设备需要访问从设备的时候,发送从设备地址。在scl为高电平时,SDA由高电平向低电平跳变,表示开始发送数...
2019-01-17 14:24:49
1905
原创 单链表的基本概念和操作
单链表的结构体定义typedef int datatype;typedef struct node{ datatype data; struct node *next;}listnode,*linklist;listnode一般用于分配内存,*linklist一般用来定义头节点。单链表的基本操作单链表的创建1linklist list_create(){ lin...
2019-01-17 12:47:47
531
原创 计算机中实现10进制转换成二进制c编程
先说一下scanf的返回值scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。如:scanf(&quot;%d %d&quot;,&amp;amp;a,&amp;amp;b);函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;如果只有a被成功读入,返回值为1;如果a和b都未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF。end of fil...
2019-01-16 20:20:33
2172
原创 二维数组与行指针
问题1:数组int a[2][3],如何表达该数组第2行第2列元素的地址?&a[1][1]a[1]+1*(a+1)+1问题2:如何表达第二行第二列的元素?a[1][1]&(a[1][0]+1)*(a[1]+1)*( *(a+1)+1)...
2019-01-14 14:25:22
281
原创 巧用异或
与其它语言不同,C语言和C++语言的异或不用xor,而是用“ ^ ”,键入方式为Shift+6。(而其它语言的“^”一般表示乘方)若需要交换两个变量的值,除了通常使用的借用中间变量进行交换外,还可以利用异或,仅使用两个变量进行交换,如:123456void swap(int &amp;amp;amp;a,int &amp;amp;amp;b){a=a^b;b=b^a;a=a^b;}详解:123...
2019-01-11 19:43:26
458
原创 C语言中sizeof和strlen的区别
整体看一个代码的效果#include &lt;stdio.h&gt;#include &lt;string.h&gt;int main(int argc, char const *argv[]){ int a[8]={1,2,3}; char b[]="love"; printf("%ld\n",sizeof(a)); printf("
2019-01-11 15:09:23
11339
原创 指针数组和数组指针解析
指针数组指针数组的本质是一个数组,一定要清楚数组。数组的特点1.数组是相同数据类型的元素的集合。2.数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。例如:int *p[4]这就是一个指针数组...
2019-01-11 14:43:59
306
原创 c语言各种排序加标注
1冒泡排序1.冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。...
2019-01-10 21:22:53
433
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人