C语言
文章平均质量分 71
小小朱大人
简单点
展开
-
IPV4流媒体C语言项目
IPV4 流媒体广播原创 2022-11-26 17:01:29 · 1982 阅读 · 0 评论 -
嵌入式C语言学习笔记(6)-- 函数
函数通俗理解就是一堆代码的集合,用一个标签来描述它,用于需要的地方复用。一般具有承上启下的作用,输入一些东西操作之后再输出一些东西。函数一般包括三要素:1、函数名(函数地址标签)2、输入参数 3、返回值由于函数名为一块特殊地址的标签,则可以用指针描述函数int (*p)(int, int, char);//右边()告诉指针P是函数类型的指针,输出参数为int int char 类型的,左边告诉指针P返回值为int类型的。以例子可以实现printf的功能。函数的参数的传递函数的调用一般有调用者和原创 2022-01-08 21:47:15 · 747 阅读 · 0 评论 -
嵌入式C语言学习笔记(5)-- 空间分布
空间分布字节对齐可以用一个图来概括:需要注意的是:1、各个空间变量的生存时间2、代码段和常数段都是只读段如果更改会出现段错误3、定义变量要注意:大小 默认方式 在那放4、堆空间:运行时才有,运行时可以自由分配和释放的空间,生存时间由程序员决定分配;5、 malloc(),一旦成功,返回分配好的地址,只需要接收,对于这个地址的读法,由程序员决定,输入参数指定分配的大小,单位就是B。申请完用完记得释放,不然会造成内存泄漏,有申请不成功的可能一般申请方式如下char *p;p = (char原创 2021-12-11 16:32:57 · 831 阅读 · 0 评论 -
嵌入式C语言学习笔记(4)-- 指针、数组空间初始化
指针指针变量通俗的理解就是存放地址的盒子,也就是说指针指向内存空间的地址,但要注意的是指针指向内存空间的低地址。例如:以下例子是一个字节的方式读地址,输出78使用一般原则:C语言使用指针要有有2个疑问?1、分配一个盒子,盒子要多大?在32bit系统中。指针就4个字节2、盒子里存放的地址所指向内存的读取方法是什么?是int 还是char等等;另外还要注意的有:指针读取内存尽量使用无符号指针 ;操作指针时一定要确定指针指向的类型和指针类型相同;指针指向的地址一定要保证合法存在;一般原创 2021-12-03 17:45:47 · 565 阅读 · 0 评论 -
嵌入式C语言学习笔记(3)-- 类型修饰符、逻辑运算符
类型修饰符 -- 总的来说就是对内存资源存放位置的限定auto :默认情况分配内存可读可写的区域,区域在{}中一般认为为栈空间对分配的内存修饰。例如:auto int aregister:限制变量定义在寄存器中的修饰符,可以定义一些快速访问的变量,如果寄存器不够时a任然会放到存储器中。&对register是无效的。简单的说就是修饰的变量优先放在寄存器中,如果寄存器没有位置,就放在储存器中。例:register int a。static:静态应用场景:1、 修饰函数内部变量(局部)I原创 2021-11-28 14:45:18 · 593 阅读 · 0 评论 -
嵌入式C语言学习笔记(2)--关键字-数据类型
关键字可以通俗的理解为编译器预先定义的有意义的字符串,不需要用户自己定义编译。今天所学习的内容使关键字中的数据类型,可能不会对每一个数据类型进行讨论,只是说明一些嵌入式开发时容易错误使用的数据类型。数据类型1、boolbool不是基本的数据类型,是在stdbool.h库中定义的一个数据类型,非常简单只有0和非0,需要注意的是一切不为0的都会被认为1.2、char硬件芯片操作的最小单位:bit ,一个bit只有0和1。在软件代码编写时,一般操作的最小单位是:B,而char a就是一个字节 =原创 2021-11-27 21:00:40 · 664 阅读 · 0 评论 -
嵌入式C语言学习笔记(1)-- 预处理的使用
一、宏定义宏可以理解为替换,替换过程不会进行语法检查,语法检查在编译时进行。1.不带参数的宏定义:宏定义又称为宏代换、宏替换,简称“宏”。实质为直接替换,宏名一般为大写。例:#defined PI 3.14152.带参数的宏:#define 宏名(参数表) 文本例如:#define S(a,b) a*b需要注意的是:如果宏替换运算式或者函数一般要加上()错误使用如:#defined test 5+3printf("5倍test = %d", test * 5); 实则计算的是:原创 2021-11-27 19:48:02 · 642 阅读 · 0 评论 -
变量(全局变量、局部变量和静态变量)的作用域
变量的作用范围取决于变量的定义位置1.局部变量(动态储存)1、仅能在它所定义的语句块内有效例如:第一个x,为零的作用域为定义它的语句块作用域(红色格格),里面的为橙色格格。2、作用域较小的局部变量隐藏作用域较大的局部变量例如:上图里的运算结果:此时 int x = 1, y = 1;作用域较小会隐藏 x = 0, y = 0;的作用域。全局变量(静态储存)从此程序开始到此程...原创 2019-11-24 17:17:38 · 11118 阅读 · 0 评论 -
蓝桥矩阵按键
#include “reg52.h”#define temp P3sfr P4=0xc0;sbit P42=P4^2;sbit P44=P4^4;extern unsigned char key_value;void keyscan_mat(){unsigned int key_press;P3 = 0x0f;P44 = 0;P42 = 0;if(temp != 0x0f)...原创 2019-03-21 09:43:21 · 233 阅读 · 0 评论 -
很多人不了解的嵌入式C高级用法
转自网络 原文地址1、内存管理我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。内存的使用时程序设计中需要考虑的重要因素之一,这不仅由于系统内存是有限的(尤其在嵌入式系统中),而且内存分配也会直接影响到程序的效率。因此,我们要对C语言中的内存管理,有个系统的了解。在C语言中,定义了4个...转载 2019-09-11 20:39:21 · 408 阅读 · 0 评论 -
C++图形时钟(画图入门篇)
C++图形时钟(画图入门篇)第一次接触制作窗口画图感觉还不错,听老师讲过后写的,希望对大家有帮助。本次工程是制作一个圆形和方形时钟,涉及画图操作,先介绍一下画图库(ACLLib)的用到的函数;1.图形库的介绍(这里只介绍此工程用到的函数,想额外了解的可以百度此库的名称)ACLLib是一个基于Win32API的函数库,提供了相对较为简单的方式来做Windows程序,同时也是一个C语言图形库...原创 2019-07-14 16:05:23 · 6636 阅读 · 1 评论