c
唯pc远方
这个作者很懒,什么都没留下…
展开
-
C语言itoa()函数和atoi()函数详解
C语言itoa()函数和atoi()函数详解(整数转字符C实现)C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。1.int/float to string/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符转载 2015-05-04 20:42:59 · 571 阅读 · 0 评论 -
C语言求最小公倍数和最大公约数三种算法
常见算法:C语言求最小公倍数和最大公约数三种算法最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数求最大公约数算法:(1)辗转相除法有两整数a和b:转载 2015-12-01 10:43:32 · 1089 阅读 · 1 评论 -
代码变成可执行程序期间,编译器做了那些事?
代码变成可执行程序期间,编译器做了那些事?1. 怎么就在编译时确定了 sizeof 的大小了?2.编译时确定的东西?3.运行时确定的东西? C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、转载 2015-09-20 11:10:47 · 1963 阅读 · 0 评论 -
Linux开发中常见段错误问题原因分析
Linux开发中常见段错误问题原因分析1 使用非法的内存地址(指针),包括使用未经初始化及已经释放的指针、不存在的地址、受系统保护的地址,只读的地址等,这一类也是最常见和最好解决的段错误问题,使用GDB print一下即可知道原因。 2 内存读/写越界。包括数组访问越界,或在使用一些写内存的函数时,长度指定不正确或者这些函数本身不能指定长度,典型的函数有strcpy(strncpy转载 2015-09-18 22:12:35 · 1578 阅读 · 0 评论 -
函数的可重入性理解
函数的可重入性理解 最近,项目要求可能需要做博通的交换芯片的驱动程序,涉及到多用户同时进行操作,和大量的数据处理,因此在进行代码架构的时候需要进行前期简单的验证设计。考虑到一点就是程序设计的可重入性。经过简单的搜索,在维基百科和其他朋友的帖子里找到了相关概念。为了帮助自己今后理解,特地将此概念加上自己的理解整理在此。一、维基百科解释 1 若一个程序转载 2015-09-19 15:53:13 · 1924 阅读 · 0 评论 -
c和c++中NULL和0的区别
1,什么是空指针常量(null pointer constant)?[6.3.2.3-3] An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant.这里告诉我们:0、0L、'\0'、3 -转载 2015-09-06 22:33:22 · 425 阅读 · 0 评论 -
关于new和malloc以及delete和free是否可以混用
/**1》当申请的空间是内置类型时,delete和free可以混用*2》当申请的空间是自定义类型时,* 1>若没有析构函数,delete和malloc可以混用,有[]和没有[]都相同* 2>若申请的空间有析构函数时,malloc申请的空间可以用delete和free释放,但是用delete释放时不能加[]*原创 2015-08-21 16:08:40 · 5521 阅读 · 1 评论 -
面试准备
/////////////////////////////////////////////////////////#if 0/*堆和栈的区别*/1>管理方式 --->堆有程序员控制,栈由编译器控制2>产生碎片---->堆中由于频繁进行new和malloc操作,会产生大量的内存碎片,栈不会3>生长的方向-->堆由低地址到高地址生长,栈由高地址向低地址生长4>申请的大小-->原创 2015-08-16 10:52:27 · 617 阅读 · 0 评论 -
联合体相关
1、联合(union)是一种特殊的类。一个union对象可以有多个数据成员,但是任何时刻,只有一个成员可以有值。当将一个值赋给union对象的一个成员的时候,其他所有成员都变为未定义的。每个 union 对象的大小在编译时是固定的:至少与最大数据成员的一样大。2、union不能作为基类使用,所以成员函数不能为虚函数。union不能具有静态数据成员或引用成员,而且,union不能具有定义了构转载 2015-09-25 23:53:24 · 438 阅读 · 0 评论 -
C语言内存分布图
别的不多说了,图比文字更具有描述力,自己看!一直都把堆栈放一起,所以很多人会误以为他们的组合是一个词语,就像“衣服”一样简单,其实不然,今天在下就将最近学习总结的一些与大家分享。 一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。转载 2015-08-16 09:41:03 · 610 阅读 · 0 评论 -
C/C++ 中的0长数组(柔性数组)
在标准C和C++中0长数组如charArray[0]是不允许使用的,因为这从语义逻辑上看,是完全没有意义的。但是,GUN中却允许使用,而且,很多时候,应用在了变长结构体中,如:StructPacket{Int state;Int len;Char cData[0]; //这里的0长结构体就为变长结构体提供了非常好的支持}; 首先对0长数组做一个解释:转载 2015-08-29 16:11:55 · 336 阅读 · 0 评论 -
C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
详解link 有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后, 或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用某种IDE(Visu转载 2015-08-29 16:15:23 · 522 阅读 · 0 评论 -
linux system函数使用详解
相关的函数fork,execve,waitpid,popen表头文件#i nclude定义函数int system(const char * string);函数说明system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()期间SIGCHL转载 2015-08-28 18:41:20 · 2942 阅读 · 0 评论 -
常见算法:C语言求素数的问题
常见算法:C语言求素数的问题素数,又称为质数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(只有1和本身两个因数的数),维基百科:素数的定义点击打开链接算法过程:决定一个数m是否是素数,只要让m被2到 根m 或者(m-1)除,如果不能被2到 根m 或者(m-1)中的任何一个数整除,则就定m为素数例1:判断m是否是素数[转载 2015-12-01 10:46:34 · 681 阅读 · 0 评论