自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 错误:声明指定了两个以上的数据类型

在编译cpp文件的时候,GCC提示错误: 错误:‘‘的声明指定了两个以上的数据类型‘’在此作用域中尚未声明一般当结构体,类的定义后忘记 ; 时会出现这个错误提示。

2017-08-30 16:00:00 2185

原创 改进版简易卖票系统,线程操作

前面一篇文章采用fork()函数创建子进程来卖票,随着学习的深入,发现这种操作太占用cpu资源了,所以改进了方法,利用线程,线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属于一个进程的其他的线程共享进程拥有的全部资源。代码中用到互斥量,下面给出解释

2017-08-15 20:35:22 247

原创 加入信号量的简易卖票系统

首先,我们在一般的基础上,不同进程访问同一内存,即共享内存的前提上加入信号量,两者比对看,前者可能售卖同一张票,即两个进程同时访问共享内存,加入信号量就是为了杜绝这种情况的发生,因为信号量就是为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行进程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。

2017-08-14 20:13:33 566

原创 /usr/bin/ld: cannot open output file a.out: Permission denied,解决办法在最后

这种情况发生的原因有很多种,今天列举一种,如后遇到再补充,先描述现象:笔者,这种情况是发生在:两个终端,其中一个终端生成并且正在执行a.out文件,在另外一个终端相同目录下,编译另外一个.c文件,出现在这种情况,根据我的描述大家也差不多知道这种情况的发生,笔者以前也遇到这样的情况,不过不是这种情况,但是解决办法都是相同的,首先我们首先想到kill函数,因为没有pid,或者说我们没有

2017-08-14 15:18:25 10472 1

原创 c语言时间常见获取办法

C语言中如何获取时间?精度如何?1 使用time_t time( time_t * timer )精确到秒2 使用clock_tclock() 得到的是CPU时间精确到1/CLOCKS_PER_SEC秒3 计算时间差使用double difftime( time_t timer1, time_t timer0 )4 使用DWORD GetTickCount()精确到

2017-08-12 00:05:06 727

原创 linux下创造一个假终端,同终端操作实现相同功能

在虚拟机终端输入命令操作,是我们常见也是最基本操作,今天调用system()函数可创造一个假的终端操作窗口#include #include #include #include int main(){ printf("请选择文件:\n"); system("ls /home"); char str[100]; while(1) { fgets(str,1000,st

2017-08-10 10:41:22 233

转载 c语言缓存机制

1.概念缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。 2.为什么要引入缓冲区比如我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再

2017-08-07 11:47:55 719

原创 字符串与指针

1、字符串的存储与访问字符串的访问char str[N];第i个字符的地址:str+i第i个字符:*(str+i)思考???以下写法是否正确?char s1[N];s1[]=“Welcome”;s1=“Welcome”;错误!必须逐一赋值或使用函数,且数组长度要足够大。可以使用字符指针解决:ch

2017-08-07 11:33:42 298

原创 c语多级指针

指针用途:1、使程序简洁、紧凑、高效2、内存的动态分配3、内存地址的直接处理4、函数调用时批量参数的传递5、复杂数据结构的简洁表达等许多其它数据类型难以实现的复杂操作等等……一、 多级指针1、为什么需要使用二级指针------使用二级指针是为了函数调用结束可以使作为函数实参的指针的值的改变保留下来------数据结构链

2017-08-07 11:28:30 232 1

转载 自动化学生如何面对嵌入式学习

在此只是引自亚嵌培训的建议(因为之前回答很多这样的问题,这次打算罗列下):在此只引用部分,如何学习嵌入式系统重点:在定制操作系统内核里将应用程序或驱动一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”,比如WinCE在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay等等应用软件的选择,如果我们选择了,在CE启

2017-08-06 22:59:11 411

原创 除了C,我们还要学习什么

      单靠C语言找工作吗?光靠拿它的证书和一些简单的逻辑运算是肯定不行的,C语言的优势主要是写底层软件的开发,例如给硬件写驱动,如果你是搞嵌入式软件的还需要学习C++来做上位机软件的编写,这样才能达到基本的要求C基础扎实,评判标准:自己想去的公司历年面试题都做一遍,分数70+往上(最好还要会C++)数据结构/算法知识网络知识TCP/IP数据库知识操作系统知识

2017-08-06 22:47:34 666

原创 51单片机对GPS卫星信号的解码并通过LCD1602或12864显示

主程序如下#include "main.h"#include "LCD1602.h"#include "GPS.h"//¶¨Òå±äÁ¿unsigned char KEY_NUM = 0;char temp,temp1,b,d;bit Page = 0;unsigned char xdata Display_GPGGA_Buffer[68];unsigned char xdata

2017-08-06 22:36:00 2580 1

原创 对指针的总结

      指针(Pointer)就是内存的地址,C语言允许用一个变量来存放指针,这种变量称为指针变量。指针变量可以存放基本类型数据的地址,也可以存放数组、函数以及其他指针变量的地址。        程序在运行过程中需要的是数据和指令的地址,变量名、函数名、字符串名和数组名在本质上是一样的,它们都是地址的助记符:在编写代码的过程中,我们认为变量名表示的是数据本身,而函数名、字符

2017-08-06 22:29:42 237

原创 3种提高效率的排序

今天说一下 鸡尾酒排序,堆排序和快速排序。鸡尾酒排序实在冒泡的基础上改进而来的,先说下冒泡排序#include // 交换函数void swap (int a[], int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}// 打印数组void printA (int *a, int len){ int i;

2017-08-06 22:18:15 365

原创 我印象中的指针与数组4

这一节主要是讲数组与指针的结合,这是比较难也是在笔试题中经常会考的1.c语言指针数组如果一个数组中的所有元素保存的都是指针,那么我们就称它为指针数组。指针数组的定义形式一般为: dataType *arrayName[length];[ ]的优先级高于*,该定义形式应该理解为:dataType *(arrayName[length]);括号里面说明arrayName是一个数

2017-08-06 22:02:55 167

原创 我印象中的指针与数组3

我印象中的指针与数组2中简单介绍了数组的定义与使用,这一篇把指针的定义与使用说下,后面的续集就开始说这两者的联系与应用了1.概念计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用4个字节,char 占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。 我们

2017-08-05 00:12:08 155

原创 我印象中的指针与数组2

由于前面写的太大了,没有注重基础,今天先把数组的基本定义和简单使用写一下,后面附了一个简单的数组计算,就当是练习1、什么是数组在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。      在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同

2017-08-05 00:01:57 160

原创 求助,帮忙设计基于stm32的地图导航

参加西门子居然进了国赛,这点自己也没有想到,记得在回答专家们问题的时候,主裁突然问了一句,你为社么不直接设计一个定位机器人,当时和团队成员突然就蒙了,这不就是说,我们偏题了吗!!!!      的确,虽然自己参加的是工程创新类项目,但自己做的产品似乎的确无法应用到制造领域,自己提出来也就是一个想法,产品很多功能也没有实现,比如最重要的,地图形式的导航定位,虽然用lcd显示了经纬度信息,但这个替

2017-08-04 23:45:37 3673 1

原创 利用C语言编写一个通讯录,包括用户界面

记得好久之前写的,今天一个学弟问我,我才想起来,主要是依靠链表完成的,细节方面做的还需要改进,主题架构就是这样了#include #include #include #define TRUE 1#define FALSE 0typedef struct _add{ int ID; char Name[20]; char Address[30]; char Compa

2017-08-04 23:37:15 3055

原创 链表与顺序表的区别

       顺序表存储位置是相邻连续的,可以随即访问的一种数据结构,一个顺序表在使用前必须指定起长度,一旦分配内存,则在使用中不可以动态的更改。他的优点是访问数据是比较方便,可以随即的访问表中的任何一个数据。      链表是通过指针来描述元素关系的一种数据结构,他可以是物理地址不连续的物理空间。不能随即访问链表元素,必须从表头开始,一步一步搜索元素。它的优点是:对于数组,可以动态的

2017-08-04 23:28:57 232

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除