![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
心海-飞翔
这个作者很懒,什么都没留下…
展开
-
二维数组指针
二维数组指针 概括的说,指针其实就是可变数组的首地址,说是可变数组,是 指其包含内容的数量的可变的,并且是可动态申请和释放的,从而充 分节约宝贵的内存资源。我一向喜欢一维数组,除非万不得已,我一 般是不用二维数组的,多维的则更是很少涉足了。因为一维简单,容 易理解,而用指针指向的多维数组就具有相当的复杂性了,也因此更 具有讨论的必要。 闲话少说,这里我就以三原创 2012-04-25 11:35:48 · 274 阅读 · 0 评论 -
C程序设计语言学习笔记(1)
C程序设计语言学习笔记(1)声明:本系列学习笔记适合有一定c语言基础的朋友参考学习,全部以个人学习的经验总结出来。以著名《c程序设计语言》实例分析为主。 每日一语:运算顺序= 是from right to left && || from left to right 第一个程序:编写一个程序,将他的输入复制到输出,并转载 2012-06-07 14:44:13 · 450 阅读 · 0 评论 -
C程序设计语言学习笔记(2)
C程序设计语言学习笔记(2)符号常量的使用#define PRICE 20 //一改全改,符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值 还记得上节的3个小程序吗???那里 用到了一些基本的数据类型,有int long float等。本节主要介绍基本数据类型中的易错知识:总结如下:符号常量的使用转载 2012-06-07 14:45:12 · 452 阅读 · 0 评论 -
C程序设计语言学习笔记(3)
C程序设计语言学习笔记(3)int i = 3;这句在内存中怎么存???含义??变量名i与变量值3,内存中占一定的存储单元。变量值3 在内存中是以二进制保存的,数值以补码表示。即数值在计算机中是以二进制补码保存的。正数的补码与原码相同;负数的补码:怎么求?除符号位各位取反,尾数加1。。。。。。 下面这个程序是通过使用数组方转载 2012-06-07 14:45:46 · 445 阅读 · 0 评论 -
C程序设计语言学习笔记(4)
C程序设计语言学习笔记(4)还记得基础(一)中提到了一点代码的简化吗??将多个连续的空格用一个空格代替的程序第二个版本。 flag = (c != ' ');由于本人的c语言水平有限,还谈不上能分析代码的优化功能,目前就以简化来分析自己c语言心得。这篇只是简单的介绍一下可以用简洁的语言来实现功能,锻炼我们的c语言思维能力。先看一个病毒程序,哈哈哈!!转载 2012-06-07 14:46:25 · 468 阅读 · 0 评论 -
EOF与getchar
EOF与getchar大师级经典的著作,要字斟句酌的去读,去理解。以前在看K&R的The C Programming Language(SecondEdition)第1.5节的字符输入/输出,被getchar()和EOF所迷惑了。可能主要还是由于没有搞清楚getchar()的工作原理和EOF的用法。因此,感觉很有必要总结一下,不然,很多琐碎的知识点长时间过后转载 2012-06-07 14:52:40 · 224 阅读 · 0 评论 -
文件结束符的使用
文件结束符的使用代码如下 -------------------------------------------------------------- int main() { char ch; int count = 0; cin.get(转载 2012-06-07 14:53:31 · 445 阅读 · 0 评论 -
为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈
为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好堆栈。而自己在Uboot的start.S汇编代码中,关于系统初始化,也看到有堆栈指针初始化这个动作。但是,从来只是看到有人说系统初始化要初始化堆栈,即正确给堆栈指针sp赋值,但是却从来没有看到有人解释,为何要初始化堆栈。所以,接下来的内容,就是经过一定转载 2012-06-07 14:55:29 · 757 阅读 · 0 评论 -
linux下获取在终端中输出的数据
linux下获取终端输出的数据下面看一个例子:/********************************************************************************************* Name:popen.c** This program is used to show the usage of popen() .*******原创 2012-06-07 16:12:40 · 5984 阅读 · 1 评论 -
linux文件设备与I/O:read/write函数与阻塞 Block
linux文件设备与I/O:read/write函数与阻塞 Block一,read 函数从打开的设备或文件中读取数据#include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次re转载 2012-06-19 09:48:47 · 745 阅读 · 0 评论 -
Linux中文件操作
1.Linux文件系统 Linux支持多种文件系统,如ext、ext2、minix、iso9660、msdos、fat、vfat、nfs等。在这些具体文件系统的上层,Linux提供了虚拟文件系统(VFS)来统一它们的行为,虚拟文件系统为不同的文件系统与内核的通信提供了一致的接口。 在Linux平台下对文件编程可以使用两类函数:(1)Linux操作系统文件API;(2转载 2012-06-19 09:50:16 · 271 阅读 · 0 评论 -
小心C语言时间函数陷阱
小心C语言时间函数陷阱 在编写C语言的应用程序时,为了获取或者打印一些跟时间有关的信息,我们经常会使用到C语言自带的一些时间函数,诸如:time、localtime、ctime、mktime和asctime等。但你可能没有注意到这里面含有一些有趣的现象,先来看一个例子: 1 #include stdio.h> 2 #in转载 2012-07-04 15:40:17 · 726 阅读 · 0 评论 -
alarm(设置信号传送闹钟)
alarm(设置信号传送闹钟) 相关函数 signal,sleep 表头文件 #include 定义函数 unsigned int alarm(unsigned int seconds); 函数说明 alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds 为0,则之前设置的闹钟会被取消,并将剩下的时原创 2012-06-06 12:33:47 · 478 阅读 · 0 评论 -
Linux下c语言多线程编程
Linux下c语言多线程编程引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系原创 2012-06-06 09:37:22 · 466 阅读 · 0 评论 -
程序性能分析
程序性能分析一,概述 如果要提高软件的性能,需要从下面几个方面入手: 1、算法与数据结构 2、算法调优 3、数据结构重组 4、与系统无关的代码的调优(float取代double)。 5、与系统相关的调优,把经常使用的函数进行加速,比如关键代码使用汇编代替高级语言 6、硬件原创 2012-05-14 17:34:57 · 263 阅读 · 0 评论 -
.bss .data .text 区别
.bss .data .text 区别BSS段在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段在采用段式内存管理的架构中,数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。原创 2012-04-16 14:19:15 · 1046 阅读 · 0 评论 -
Linux下串口程序开发
Linux下串口程序开发串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIA RS-232-C)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该原创 2012-05-11 09:07:14 · 563 阅读 · 0 评论 -
int main(int argc,char* argv[])详解
int main(int argc,char* argv[])详解 argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]) { int i; for (i =原创 2012-05-11 09:26:02 · 221 阅读 · 0 评论 -
浅谈malloc与 kmalloc、cmalloc、realloc、new 的区别
浅谈malloc与 kmalloc、cmalloc、realloc、new 的区别相关函数原型:1. Malloc 作 用: Malloc用于动态申请存储空间,它不是关键字,而是一个申请内存的函数用 法:Malloc 返回一块内存地址的指针,否则会返回空指针null,这里要注意的是,当内存不再使用的时候,用free()函数进行对内存的释放。2.calloc 作转载 2012-05-11 17:08:32 · 599 阅读 · 0 评论 -
errno 列表
/******************************#include printf("errno=%d\n",errno);******************************/errno 列表#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such f转载 2012-05-11 11:23:34 · 475 阅读 · 0 评论 -
Linux下串口编程
Linux下串口编程 老板让我研究一下UPS的控制,貌似在Linux下面没有相应的监控软件,UPS和电脑通信时候使用的是串口(RS232),所以先对Linux串口编程了解一下。因为只是设计串口传输数据,而不需要串口来处理,那么使用原始模式(Raw Mode)方式来通讯。串口操作需要的头文件:12345678原创 2012-05-11 13:52:37 · 313 阅读 · 0 评论 -
数组作为函数参数并传递数组元素个数的几种有效方法
数组作为函数参数并传递数组元素个数的几种有效方法 //由于数组的元素个数默认情况下是不作为实参内容传入调用函数的,本程序用来讨论有此带来的 //相关问题,以及解决问题方法,即给调用函数传递数组的元素个数的几种有效方法并实现它 #include #include using namespace std; void PutArray1(int *p,in原创 2012-05-30 11:29:25 · 8288 阅读 · 0 评论 -
c语言变量名规则
c语言变量名规则 在程序设计中,变量名、函数名、数组名等统称为标识 符。简单地说,标识符就是一个名字。除库函数的函数名由系统定义外,其余都由用户自定义。C语言规定,标识符只能由字母(a~z,A~Z)、数字 (0~9)、下划线(_)组成,并且标识符的第一个字符必须是字母或下划线,不能以数字开头。C语言不限制标识符的长度,但它受各种C语言编译器的限制, 同时也受到具体机器的限制。例原创 2012-06-01 09:10:42 · 16197 阅读 · 0 评论 -
C++虚函数和多态性的关系【virtual】之二
C++虚函数和多态性的关系【virtual】之二 在我上一篇的文章中,我把我对虚函数和多态性的关系发表了出来,经过这些天的思考、探讨和查资料,现在我有了更深一层的理解,现记录在此,如大家有更好的理解,也请大家不吝赐教【我上一篇博文的地址是:C++虚函数和多态性的关系【virtual】之一】在上一篇的博文中,我说:如果没有虚函数【也就是virtual声明的函数】,那么C++的多态性就无法原创 2012-05-14 17:01:45 · 286 阅读 · 0 评论 -
结构体定义 typedef struct 用法详解和用法小结
结构体定义 typedef struct 用法详解和用法小结 typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于:若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n;若用typedef,可以这样写,typedef struct node{}NODE原创 2012-06-01 14:55:22 · 350 阅读 · 0 评论 -
结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析
结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析struct stud{ long int num; float score;};/*结构体变量作为函数的参数,修改之后的成员值不能返回到主调函数*/void funvr(struct stud t){ t.num=2000101;t.score=71.0; }原创 2012-06-01 15:58:40 · 475 阅读 · 0 评论 -
C++项目中的extern "C" {}
在用C++的项目源码中,经常会不可避免的会看到下面的代码:?123456789#ifdef __cplusplusextern "C" {#endif /*...*/ #ifdef __cplusplus}转载 2012-08-02 13:22:58 · 491 阅读 · 0 评论