![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
文章平均质量分 72
wujiangguizhen
这个作者很懒,什么都没留下…
展开
-
指针函数与函数指针的区别
一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变转载 2013-12-04 00:43:04 · 597 阅读 · 0 评论 -
c语言编程基础------0.4GNU C 函数库(glibc)
这篇文章主要来自维基百科GNU C函式庫(重定向自Glibc)GNU C函式庫初始版本1987年[1]穩定版本2.20[2](2014年9月7日,4個月前)[±]開發狀態活跃操作系统跨平台类型运行时库许可协议LGPL網站http://w转载 2015-02-05 15:04:46 · 2576 阅读 · 0 评论 -
c语言编程基础------0.0.1c语言简易介绍(百度百科)
本文主要来自百度百科C语言是目前世界上流行、使用最广泛的面向过程的高级程序设计语言。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。中文名c程序C语言世界上流行、使用最广泛类 型高级程序设计语言转载 2015-02-05 14:24:01 · 2743 阅读 · 0 评论 -
c语言编程基础------0.1GNU计划
本文主要来自维基百科http://zh.wikipedia.org/zh-cn/GNUGNUGNU公司 /开发者[[GNU计划]]操作系统家族类Unix运作状态开发中支持的语言多语系支持平台x86、x86-64内核类别微内核默认用户转载 2015-02-05 13:12:58 · 762 阅读 · 0 评论 -
c语言编程基础------0.0c语言介绍
注明:这篇文章主要内容来源与维基百科http://zh.wikipedia.org/wiki/C%E8%AF%AD%E8%A8%80#C99C语言「C程序设计语言」重定向至此。關於书籍,詳見「C程序设计语言 (书)」。C語言编程范型程序式指令式编程(过程式)、结构化编程发行时间1972年設計转载 2015-02-05 13:04:45 · 2756 阅读 · 1 评论 -
c语言编程基础------1.c语言编译原理介绍
在编写自己的c语言代码之前,有必要了解c语言代码是如何被编译系统编译的1. 编辑器: 我们编写代码的一些窗口,如:记事本、word、notepad等。2. 编译器: 检查用户代码的一些语法错误并且将其编译成汇编代码。3.汇编器:将编译出来的文件变成目标代码(windows 下的.obj文件)4.连接器:将目标代码连接成为可执行文件(.exe),及双击就可以运行文件。转载 2015-01-31 12:36:32 · 2235 阅读 · 0 评论 -
c语言中指针的用法以及注意的地方
1.定义指针变量时,必须将指针变量初始化为NULL(为空),否则,指针变量会由于初始化位置的不确定原创 2014-07-04 18:43:22 · 1200 阅读 · 0 评论 -
字符数组名与字符串指针变量名的区别
教学目的: 掌握使用字符串指针引用字符串的方法。掌握字符串指针作函数参数的方法。教学重点: 通过字符串指针引用字符串。教学难点: 字符数组名与字符串指针变量名的区别。授课内容:一、字符串指针变量的说明和使用字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。对指向字符变量的指针变量应赋予该字符变量的地址转载 2014-07-03 16:03:23 · 6171 阅读 · 0 评论 -
c语言编程基础------0.0.0c99介绍
本文主要来自百度百科C99标准是 ISO/IEC 9899:1999 - Programming languages -- C 的简称[1] ,是C语言的官方标准第二版。1999年12月1日,国际标准化组织(ISO)和国际电工委员会(IEC)旗下的C语言标准委员会(ISO/IEC JTC1/SC22/WG14)正式发布了这个标准文件[2] 。中文名C99转载 2015-02-05 14:12:54 · 2174 阅读 · 1 评论 -
c语言编程基础------0.5 c应用程序和c内核驱动程序的沟通和区别
应用程序 驱动程序 内核的沟通 驱动程序一般是通过模块注入内核,用字符驱动程序举个例子:1.编写字符驱动程序需要在内核中注册设备和中断程序,还有file_ops里面的open,read,release等函数2.注册成功后在/proc/device文件里面可以看到你注册的设备名称和主设备号,/proc/interrupt文件中可以看到注册的中断3.为设备创建文件转载 2015-02-05 15:30:19 · 2277 阅读 · 0 评论 -
c语言编程基础------0.5.3 c应用程序之argc argv以及return 和exit,abort,assert的解释
1.argc argv int main(int argc,char *argv[])( ) 简单来说,argc就是在命令行输入参数的个数,argv就是一个指针数组,数组里面的指针指向的对象是字符串,其实就是在命令行输入的东西。 具体来看看百度百科的解释。argc argv编辑本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!转载 2015-02-07 18:08:35 · 2319 阅读 · 0 评论 -
c语言编程基础------0.5.2 c应用程序之头文件说明
c应用程序的头文件很重要,因为里面定义了许多库函数,我们需要用到哪些库函数的时候,直接把相关头文件包含进来就行了。比较常用的头文件有,里面包含了标准的输入输出函数,如printf scanf c工具头文件,里面包含了atoi等工具函数 字原创 2015-02-07 17:41:06 · 1987 阅读 · 0 评论 -
c语言编程基础------0.5.1 c应用程序之最简单的程序---Hello world!
#include //头文件int main(int argc, char **argv){ printf("hello world!\n"); return 0;}原创 2015-02-07 16:14:03 · 3165 阅读 · 0 评论 -
c语言编程基础------0.4.3 UBUNTU下如何下载EGLIBC和察看版本
ubuntu下,其实用的c库是EGLIBC。1.察看目前所用版本 ldd --version2.更新下载2.0:替换原始源,然后更新。sudo apt-get update 2.1:下载 sudo apt-get source libc6-dev 这样,会把相关压缩文档下载到当前目录2.2 :直接安装更新 sudo apt-get原创 2015-02-06 12:45:04 · 1184 阅读 · 0 评论 -
c语言编程基础------0.4.4 ubuntu 12.04 LTS 如何使用更快的更新源
装好ubuntu系统后的第一见事就是替换自带的更新源,原因是系统自带的源有些在中国访问不了,可以访问的速度又特别慢。幸好国内的一些公司和大学提供了速度不错的更新源。下面介绍如何使用更快的更新源方法/步骤 备份sources.list文件: sudo cp /etc/apt/sources.list /etc/apt/sources.lis转载 2015-02-06 12:55:50 · 847 阅读 · 0 评论 -
c语言编程基础------0.4.2 EGLIBC介绍
EGLIBC库介绍一、介绍1、概览扩充和增强GNU C库的功能,以支持各种不同环境的嵌入式系统,并维持开放的开发环境,鼓励开发者的广泛协作。 2、免费软件的目标· 支持GNU项目的目标· LGPL许可证· FSF拥有版权3、设计目标· 提供一个选择,以减少磁盘和内存占用。· 支持交叉编译和交叉验证。· 支持用于嵌入式系统的处理器。· 组合转载 2015-02-06 10:50:49 · 674 阅读 · 0 评论 -
c语言编程基础------0.3GCC和C的关系
实际上,这两者的关系是编译器支持c标准版本的关系,就是支持与被支持的关系。GCC对C标准的支持写在前面:GCC支持C90, 不完全支持C99。在不指定C标准的情况下,GCC默认使用GNU C。用一个式子表示GNU C:GNU C = C90 + GNU Extensions = C90 + (some features in C99 + some features in转载 2015-02-05 14:07:45 · 1832 阅读 · 0 评论 -
c语言编程基础------0.4.1 glibc介绍--百度百科
本文主要来自百度百科glibcglibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他转载 2015-02-05 15:08:55 · 1297 阅读 · 0 评论 -
c语言中形参和实参的区别?
形式参数和实际参数 函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 函数的形参和实参具有以下特点: 1. 形转载 2014-07-04 11:26:37 · 17304 阅读 · 1 评论 -
C指针,C语言中的指针详解
有错误的地方带查证:一、 数组的指针、指针数组以及指向指针的指针 考虑数组的指针的时候我们要同时考虑类型和维数这两个属性。换一句话,就是说一个数组排除在其中存储的数值,那么可以用类型和维数来位一、数组的指针、指针数组以及指向指针的指针 考虑数组的指针的时候我们要同时考虑类型和维数这两个属性。换一句话,就是说一个数组排除在其中存储的数值,那么可以用类型和维数来转载 2014-07-04 11:03:06 · 607 阅读 · 0 评论 -
memcpy memmove区别和实现
memcpy memmove区别和实现memcpy与memmove的目的都是将N个字节的源内存地址的内容拷贝到目标内存地址中。但当源内存和目标内存存在重叠时,memcpy会出现错误,而memmove能正确地实施拷贝,但这也增加了一点点开销。memmove的处理措施:(1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝(2)当源内存的首地址大于目标内存的首地址转载 2013-12-31 18:04:58 · 725 阅读 · 0 评论 -
函数指针的好处、作用
C中函数指针的作用 项目中用到了很多封装在struct中的函数指针,以前在MFC里面经常用到则个作为回调函数,还以为是微软设计的特色呢。在网上查了一下它的用法,做个总结。 1)提供调用的灵活性。设计好了一个函数框架,但是设计初期并不知道自己的函数会被如何使用。比如C的”stdlib”中声明的qsort函数,用来对数值进行排序。显然,顺序还是降序,元素谁大谁小这些问题,库程序员在编原创 2013-12-06 00:29:00 · 38816 阅读 · 3 评论 -
定义指针类型时*号位置与功能的关系
定义指针类型时*号位置与功能的关系2007-05-11 10:22lulapub | 分类:其他编程语言 | 浏览1776次常常看到这样的句子:int* a;和int *a; 请问这*号紧靠在类型后面和紧靠变量前面,在含义上有什么区别吗? 在使用变量时有什么区别吗?分享到:举报▼| 2007-05-11 10:26提问转载 2013-12-05 22:27:18 · 1999 阅读 · 0 评论 -
结构体初始化
今天同事聊到内核中结构体初始化,对结构体struct a {int b;int c;}有几种初始化方式:struct a a1 = { .b = 1, .c = 2};或者struct a a1 = { b:1, c:2}或者struct a a1 = { 1, 2};内核喜欢用第一种,使用第一转载 2013-12-05 22:22:20 · 1046 阅读 · 0 评论 -
利用typedef定义函数指针(转载自ITeye)
进入正文: 代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例子定义MYFUN 是一个函数指针, 函数类型是带转载 2013-12-05 23:36:40 · 673 阅读 · 0 评论 -
typedef用法
在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。目录1定义2用法总结3语言用法4代码简化5平台开发1定义typed转载 2013-12-05 22:17:54 · 628 阅读 · 0 评论 -
结构体的定义以及使用
结构的定义定义一个结构的一般形式为:struct 结构名{成员表列}成员表由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明。例如:struct stu{int num;char name[20];int age;}结构类型变量的说明结构体定义并不是定义一个变量,而是定义了一种数据类型,这种类型是你定义的,转载 2013-12-04 00:51:17 · 791 阅读 · 0 评论 -
定义函数指针
1 定义一个函数指针且不论语法,有两种不同形式的指针函数: 一个是指向普通的C函数的指针和C++的静态成员函数,另外一个是指向C++的非静态成员函数的指针。这两者的基本区别是所有指向非静态成员函数的指针都 需要这个隐含定义:指向本类的一个This指针。注意:这两种函数指针彼此不兼容。既然一个函数指针实际上和一个变量没有什么区别,定义它的时候也就没有什么特殊。下面的例子中我们定义3个函转载 2013-12-04 00:58:14 · 766 阅读 · 0 评论 -
bit,byte,word,long word转换关系
bit,通常指一个二进制位,byte,通常包含8bit,word,与系统硬件(总线、cpu命令字位数等)有关,如数据总线为16位,则1word为2byte。32位 1word为4byte。long word的长度 为word的两倍。 存储容量通常用byte表示,因为与系统硬件无关。原创 2014-02-22 16:21:55 · 6956 阅读 · 0 评论 -
c语言-取整-求余
/是取整,%是求余原创 2014-03-11 16:34:26 · 16423 阅读 · 0 评论 -
字符串指针与字符数组的区别
字符串指针与字符数组的区别数组和指针都可以在它们的定义中用字符串常量进行初始化,尽管看上去一样,底层的实现机制却不相同。定义指针时,编译器并不为指针所指向的对象分配空间,它只是分配指针本身的空间。例如:下面的定义创建了一个字符串常量(为其分配了内存): char *p=”abcdefg”; //”abcdefg”存储在静态常量区,p指向该”ab转载 2014-07-03 15:59:18 · 703 阅读 · 0 评论 -
C语言程序编译的内存分配:
C语言程序编译的内存分配:1.栈区(stack) --编译器自动分配释放,主要存放函数的参数值,局部变量值等;2.堆区(heap) --由程序员分配释放;3.全局区或静态区 --存放全局变量和静态变量;程序结束时由系统释放,分为全局初始化区和全局未初始化区;4.字符常量区 --常量字符串放与此,程序结束时由系统释放;5.程序代码区--存放函数体的二进制代码例: //main转载 2014-07-01 15:55:53 · 598 阅读 · 0 评论 -
数组名和指针的区别
近段时间在整理自己大学几年来学习C++的点点滴滴,写这篇文章源于看林锐博士的《高质量C++指南》时,看到文章直接把指针和数组名视为同一东西,原文为“数组名本身就是一个指针,是一个指针常量,即a等价于int * const a,因此你不能试图修改数组名的值”,摘自第三版127页第7.2.1小节。 自己初学C++时也被数组和指针搞得昏头转向过,通过多方求证和对比实验已把指针和数组弄得稍明转载 2014-07-01 18:41:28 · 486 阅读 · 0 评论 -
c语言字符数组的定义与初始化
1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。[cpp] view plaincopychar str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'}; 即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大转载 2014-07-01 18:03:01 · 6629 阅读 · 0 评论 -
关于字符数组的初始化
字符数组可以在定义时进行初始化.有两种初始化方法.方法1:逐个字符赋给数组中各元素.这种方法最容易理解.例如:char c[5]={ 'H','a','p','p','y' };把5个字符分别赋给c[0]至c[4].以下是几点说明:(1) 如果大括号内提供的初值个数(即字符个数)大于数组长度,则编译时将出错.如果初值个数小于数组长度,则只将这些字符赋给前面的数组元素,其转载 2014-07-01 18:28:36 · 3223 阅读 · 0 评论 -
c语言中 printf的打印类型
转换说明及作为结果的打印输出%a 浮点数、十六进制数字和p-记数法(C99)%A 浮点数、十六进制数字和p-记法(C99)%c 一个字符 %d 有符号十进制整数 %e 浮点数、e-记数法%E 浮点数、E-记数法%f 浮点数、十进制记数法 %g 根据数值不同自动选择%f或%e.%G 根据数值不同自动选择%f或%e.%i 有符号十进制转载 2014-07-01 18:20:40 · 6077 阅读 · 0 评论 -
常量字符串为什么位于静态存储区?
char *c="chenxi";书上说: "chenxi"这个字符串被当作常量而且被放置在此程序的内存静态区。那一般的int i=1;1也是常量,为什么1就不被放置在此程序的内存静态区了呢?请高手指点!所有的字符窜常量都被放在静态内存区因为字符串常量很少需要修改,放在静态内存区会提高效率例:char str1[] = "abc";char str2转载 2014-06-30 15:59:30 · 596 阅读 · 0 评论 -
typedef的四个用途和两个陷阱
用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *p转载 2014-04-18 12:09:09 · 771 阅读 · 0 评论 -
c语言编程基础------0.2GCC和GNU的关系,以及GCC的用法
这篇文章主要来自百度百科gcc(GNU编译器套件)编辑GNU编译器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”转载 2015-02-05 13:21:39 · 2147 阅读 · 0 评论