kill和raise 1. 函数说明:kill和raise是用来发送信号的:kill把信号发送给进程或进程组;raise把信号发送给(进程)自身.他们的原型如下:#include int kill(pid_t pid, int signo);int raise(int signo);成功则返回0, 出错则返回-1从原型上可以看出, raise函数是可以通过kill实现的.rais... 2023-06-13 文章基础课C语言基础
alarm和pause 1. alarm函数:alarm函数是设置一个计时器, 在计时器超时的时候, 产生SIGALRM信号. 如果不忽略或捕捉此信号, 它的默认操作是终止调用该alarm函数的进程.原型如下:#include unsigned int alarm(unsigned int seconds);返回0或余留秒数说一下alarm的返回值问题, 每个进程只... 2023-06-13 文章基础课C语言基础
单片机C语言基础编程源码六则 1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直到0,然后再从0逐渐增大,一直这样输出。试编写一函数,使从P2口输出的值产生三角波,并且使三... 2023-06-13 单片机C语言编程基础文章基础课C语言基础
单片机C语言延时分析 标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。在keil C51中,直接调用库函数:#include// 声明了void _nop_(void);_nop_(); // 产生一条NOP指令作用:对于延时很短的,要求在us级的,采用&l... 2023-06-13 单片机C语言延时分析文章基础课C语言基础
用C51实现单片机的中文输入法 说明:拼音输入法杳询函数:unsignedcharcode*py_ime(unsignedcharinput_py_val[]);input_py_val为已输入的拼音码字符串头指针,反回值为中文的起始地址,当为0时,杳询失败应用举例:{unsignedcharinput_string[]={"bang"};unsignedcharchines_string[100];sprintf(chines... 2023-06-13 C51单片机中文输入法文章基础课C语言基础
C++的那些事:函数全解析 一、函数的结构image函数在C++中可能出现在三种地方,一是函数的定义,它包括了如上图的结构;二是函数的声明,它与函数的定义相比,没有了函数体部分;三则是函数的调用。当然,不同的函数定义可以还会稍有不同,比如类的成员函数、内联函数等。这里我们主要讨论函数的调用时需要注意的... 2023-06-13 C++函数全解析文章基础课C语言基础
C语言高效编程的几招 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。第1招:以空间换时间计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间... 2023-06-13 C语言高效编程文章基础课C语言基础
谈谈单片机C语言编程中不经意间的一个小错误! 我们知道,51单片机有几个不同的中断源。对于一个系统的设计,通常在初始化程序里面需要定义各个中断等比如:TMOD = 0x21; // T1 mode 2 T0,mode 1 //GATE C/T M1 M0 GATE C/T M1 M0TL1 = 0xfd; // 0xfa=4800 bps 0xfd=9600 bpsTH1 = 0xfd;TH0 = -(10000/256);TL... 2023-06-13 C语言小错误文章基础课C语言基础
详解C中volatile关键字 volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现... 2023-06-13 volatile关键字C文章基础课C语言基础
,C语言程序连接过程中的特性和常见错误 教您布局C语言编程程序的内存重点关注以下内容: C语言程序在内存中各个段的组成 C语言程序连接过程中的特性和常见错误 C语言程序的运行方式 一:C语言程序的存储区域 由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程... 2023-06-13 C语言文章基础课C语言基础
C语言优化小技巧 在编写C语言程序后,经常需要对源码进行优化,以提高程序的运行效率,下面简述几个常用的优化技巧以供大家参考:1.C于代码在程序中的优化现在的C编译器会自动对代码进行优化,但这些优化是对执行速度和代码长度的平衡。如果要获得更小且执行效率更高的代码,需要程序员手工对代码进... 2023-06-13 c语言、程序优化文章基础课C语言基础
C语言之内存使用 这里我和大家一起探讨c语言的内存使用。曾经有同行写了一个把整数转换为字符串的函数:char *itoa (int n){char retbuf[20];sprintf(retbuf, "%d", n);return retbuf;}倘若我调用该函数:char *str5 = itoa(5),str5会是什么数值?结果是不确定,唯一能确定的是结果不会是我们想... 2023-06-13 C语言文章基础课C语言基础
使用单片机C语言的好处 将C向MCU(俗称单片机)8051上的移植始于80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。如:·8051的非冯·诺依慢结构(程序与数据存储器空间分立),再加上片上又多了位寻址存储空间;·片上的数据和程序存储器空间过小和同时存在着向片外扩展它们的可能;&mi... 2023-06-13 单片机C语言文章基础课C语言基础
C++的几个编程技巧 C++语言是一个面向对象的语言,使用C++编写的代码更加简捷、高效,更具可维护性和可重用性。但是很多人使用了C++语言后却感到C++与C编程没有什么区别。这其实是由于对C++语言的特点和特色理解和使用不够造成的。事实上,没有任何一个程序员使用C语言的编程效率可以超过C++语言的。一、使用... 2023-06-13 C语言C++编程语言文章基础课C语言基础
新手零基础如何入门c语言 很多人学习c语言,上来就去背语法,甚至连各种高深的算法都是死背出来的,大学里流行考计算机二级C语言证书,手抄资料的有之,背全书者有之,终于可怜又可 悲的拿到了所谓的证书,真正用c语言编写程序处理问题时,满脑子空了。可能这样学过之后,把许多c语言语法记住了,但是却学不会如何编... 2023-06-13 新手零基础入门c语言文章基础课C语言基础
C语言程序连接过程中的特性和常见错误 一:C语言程序的存储区域由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。C语言编写的程序经... 2023-06-13 C语言程序连接特性常见错误文章基础课C语言基础
单片机高级语言程序设计与应用 1引言在隧道窑温度控制系统、自助式寄存柜等多个实际应用中,我们利用单片机高级C语言编制应用程序,满足了用户对各项性能参数的不同要求。下面以一实例,介绍C语言在应用程序设计上的优点。2系统结构系统由电器和机械两部分组成。机械部分由寄存柜箱位、电控锁组成;电器部... 2023-06-13 单片机程序设计高级语言文章基础课C语言基础
单片机c语言教程:C51循环语句 循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作。如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的(当然能使用定时器来做,这里就不讨论),如果是写 1000 条空语 句那是多么麻烦的事情,再... 2023-06-13 C51单片机C语言教程循环语句文章基础课C语言基础
C语言程序的编译和链接过程 1.程序的编译 一般而言,大多数编译系统都提供编译驱动程序(complier driver),根据用户需求调用语言预处理器,编译器,汇编器和链接器.例如有如下历程://main.cvoid swap();int buf[2]={1, 2};int main(){ swap(); return 0;} //swap.cint *bufp0 = &buf[0]int *bufp1;void... 2023-06-13 C语言编译链接过程文章基础课C语言基础
C语言编译全过程 编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(... 2023-06-13 C语言编译C文章基础课C语言基础
学习学好c++的50条忠告 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑&mdash... 2023-06-13 编程知识点忠告C语言文章基础课C语言基础
算法的力量 李开复 算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程... 2023-06-13 算法李开复文章基础课C语言基础
C语言的面向对象编程(一) 一、前言对于编程而言,重要的是解决问题的方式,而不是语言本身。面向对象与面向过程是解决问题和思考问题的方式。C语言常说是面向过程开发的语言,因为其缺少很多对于面向对象特性的支持。但,这并不影响我们采用面向对象的方式,使用C语言编程。二、基本介绍在C语言中,采用面向... 2023-06-13 C语言程序文章基础课C语言基础
关于指针-2 经常听到很多人说这么一句话,指针就是地址!这句话非常正确。所谓地址又是什么呢?地址其实就是计算机的内存的索引。具体到MCU,其实就是单片机的内存地址,包括数据区地址和程序区地址。在任何一款单片机的手册中都会介绍该产品的地址分布。如果使用汇编语言编程,对地址分布就非... 2023-06-13 C语言单片机指针地址文章基础课C语言基础
关于指针-1 很多人说C的指针很难,我有位姓张的同学告诉我“不难”。因为在他工作的第一年里,从来没有使用过指针,使用数组即解决了问题。当然现在他在单位早就成了顶级的工程师了。我说这件事情的意思是凡事不要拔苗助长,一步一步即可解决问题。如果您的代码量已经超过了5万行... 2023-06-13 C语言指针文章基础课C语言基础