![](https://img-blog.csdnimg.cn/20201029103955517.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
编程语言
文章平均质量分 67
c/c++编译型语言以及shell脚本语言
huislee
这个作者很懒,什么都没留下…
展开
-
日志打印之输出日志法(分模块与分级打印)
日志打印之输出日志法如果你的嵌入式项目比较大,调试建议采用输出日志法!在我们嵌入式开发中,调试代码的方法有很多。比如使用调试器在线调试、借助一些测量仪器、输出调试日志等方式。没有哪种方法是最好的调试方法,实际开发中需要根据实际情况借助不同的方法进行调试。但是,在一些稍微大点的项目中,输出调试日志却是比较好的调试方法。输出日志可以比较随意,想输出什么就输出什么,但是也得注意两个点:一是输出的日志尽量整洁明了,因为如果日志稍微多一点,看起来就会很乱,很扰心;二是方便打开/关闭日志相关代码,程序调试原创 2020-11-28 09:05:37 · 1126 阅读 · 1 评论 -
日志打印之C语言宏打印日志
宏打印函数嵌入式开发中,使用printf打印一些信息是一种常用的调试手段。但是,在打印的信息量比较多的时候,就比较难知道哪些信息在哪个函数里进行打印。特别是对于异常情况的打印,我们需要快速定位到异常情况的位置。这时候我们可以使用宏定义来封装一个宏打印函数,这个宏打印函数可以显示打印信息所在的文件、行数、函数名等信息。如://log.h#ifndef __LOG__#define __LOG__#include<stdio.h>#include<stdlib.h>#i原创 2020-11-28 08:52:59 · 2000 阅读 · 0 评论 -
C语言之宏定义用法总结
C语言之宏定义用法总结一.预处理将宏展开编译C语言程序第一步就是预处理阶段,这一阶段就是宏展开但不检查语法错误的阶段。C预处理器在源代码编译之前对其进行一些文本性质的操作,主要任务包括删除注释、插入被#include进来的文件内容、定义和替换由#define 定义的符号以及确定代码部分内容是否根据条件编译(#if)来进行编译。”文本性质”的操作,就是指一段文本替换成另外一段文本,而不考虑其中任何的语义内容。宏仅仅是在C预处理阶段的一种文本替换工具,编译完之后对二进制代码不可见。用法1:宏常量#d原创 2020-11-19 15:43:26 · 3719 阅读 · 2 评论 -
完美解决消除多种 warning(基于VxWorks7.0)适用C开发
完美解决消除多种 warning(基于VxWorks7.0)适用C开发方式1:直接忽略警告注:(此方式弊端是在软件审核时会降低等级或者无法通过)打开项目属性添加如下:(作用是忽略掉这些代号的警告) -ei4177,4301,4550 -ei4177,4550,2273,5387,5388,1546,1824 -ei4111,4171,4188,4191,4513,5457方式2:逐个消除警告警告1:line 15: warning (etoa:4068): integer convers原创 2020-11-18 20:37:54 · 1377 阅读 · 0 评论 -
(三)shell编程之条件判断语法结构
shell编程之条件判断语法结构本节课程目标熟悉条件判断语句,如判断整数、判断字符串等熟悉流程控制语句基本语法,如if…else…一、条件判断语法结构思考:何为真(true)?何为假(false)?##1. 条件判断语法格式格式1: test 条件表达式格式2: [ 条件表达式 ]格式3: [[ 条件表达式 ]] 支持正则 =~特别说明:1)[ 亲亲,我两边都有空格,不空打死你呦 ] ????2)[[ 亲亲,我两边都有空格,不空打死你呦 ]]????更多判断,m原创 2020-11-01 21:21:28 · 519 阅读 · 0 评论 -
(二)shell编程之变量定义与使用
shell编程之变量定义与使用SHELL编程模块课程目标① Shell的基本语法结构如:变量定义、条件判断、循环语句(for、until、while)、分支语句、函数和数组等;② 基本正则表达式的运用;③ 文件处理三剑客:grep、sed、awk工具的使用;④ 使用shell脚本完成一些较复杂的任务,如:服务搭建、批量处理等。说明:以上内容仅仅是基本要求,还有很多更深更难的语法需要扩充学习。本节目标熟练掌握shell变量的定义和获取(重点)能够进行shell简单的四则运算原创 2020-11-01 17:16:48 · 1058 阅读 · 0 评论 -
(一)shell编程之小工具
shell编程之小工具# 本节目标了解shell中的通配符熟悉grep、cut、sort等小工具和shell中的通配符的使用#一、文本处理工具##1. grep工具grep是**行**过滤工具;用于根据关键字进行行过滤语法和选项语法:# grep [选项] '关键字' 文件名常见选项:OPTIONS: -i: 不区分大小写 -v: 查找不包含指定内容的行,反向选择 -w: 按单词搜索 -o: 打印匹配关键字 -c: 统计匹配到的行数原创 2020-11-01 14:13:34 · 455 阅读 · 0 评论 -
内存与c语言位操作
c语言位操作一、位操作符1.1 位与&位与和逻辑与的区别:位与时两个操作数是按照二进制位彼次对应位相与的,逻辑与是两个操作数作为整体来相与的。1.2位或 |位或和逻辑或的区别;位或时两个操作数是按照二进制位彼次对应位相或的,逻辑或是两个操作数作为整体来相或的。1.3位取反~注意:(1) c语言中位取反是~,c语言中的逻辑取反是!;(2)按位取反是将操作数的二进制位逐个按位反(1变成0,0变成1);而逻辑取反是真(在C语言中只要不是0的任何数都是真)变成假(在c语言中只有0表示假)、假原创 2020-10-21 22:06:33 · 504 阅读 · 0 评论 -
64位系统运行32位可执行文件依赖库
64位系统运行32位可执行文件依赖库ubuntu1804需安装lib32ncurses,lib32z1。lib32ncurses(依赖lib32tinfo5(依赖libc6-i386),libc6-i386(依赖libc6(依赖libgcc1(依赖gcc-8-base,libc6))))lib32z1(依赖libc6-i386)安装命令:dpkg -i 安装包名字以上安装包都在页面中选择ubuntu18.04栏中选择,选择amd64结尾的:...原创 2020-10-15 12:07:18 · 1134 阅读 · 0 评论 -
shell编程
查看Linux下支持的shell,及默认支持的shellhuislee@huislee-Lenovo-G410:~$ cat /etc/shells# /etc/shells: valid login shells/bin/sh/bin/bash/bin/rbash/bin/dashhuislee@huislee-Lenovo-G410:~$ echo $SHELL/bin/bash执行脚本的方式不加可执行权限方式1:指定解析器执行,如/bin/bash a.sh方式2:s.原创 2020-08-13 15:27:16 · 146 阅读 · 0 评论 -
(二)linux系统编程之进程间通信
进程间通信相关概念1.什么是IPC ?即:进程间通信 InterProcess Communication2.进程间通信常用的4种方式:a.管道·简单b.信号.系统统开销小c.共享映射区·(有无血缘关亲的进程间通信都可以)d.本地套接字-稳定匿名管道本质:内核缓冲区,是伪文件,不占磁盘空间特点:数据写端流入,读端流出;对应2个文件描述符;操作管道的进程被销毁后管道自动释放,管道默认是阻塞的。原理:内部实现方式:队列,先进先出。默认4k,大小会根据实际情况适当调整,但不会无限扩大。局原创 2020-10-27 15:18:54 · 96 阅读 · 0 评论