![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 63
ysdaniel
这个作者很懒,什么都没留下…
展开
-
C语言 读文件时多读一次最后一行数据的解决办法
C语言 读文件时多读一次最后一行数据的解决办法 FILE* fp; int n; int t=0; if((fp=fopen("as_uniq_info","r"))==NULL) { printf("Open as_uniq_info fail!\n"); ex原创 2012-09-07 13:23:28 · 8811 阅读 · 0 评论 -
如何判断CPU是大端还是小端模式
如何判断CPU是大端还是小端模式http://blog.sina.com.cn/s/blog_66a61f310100i7m0.htmlMSB:Most Significant Bit ------- 最高有效位 LSB:Least Significa转载 2011-07-19 16:42:06 · 5420 阅读 · 0 评论 -
大端模式与小端模式
大端模式与小端模式 一、概念及详解 在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式。 先回顾两个关键词,MSB和LSB: MSB:Most Significant Bit -转载 2011-09-13 19:51:38 · 673 阅读 · 0 评论 -
C/C++中typedef struct和struct的用法
由于对typedef理解不够,因此从网上摘录了一些资料,整理如下: C/C++中typedef struct和struct的用法 struct _x1 { ...}x1; 和 typedef struct _x2{ ...} x2; 有什么不同?转载 2011-09-10 15:38:29 · 974 阅读 · 0 评论 -
equals ==
equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。==用于比较引用和比较基本数据类型时具有不同的功能:比较基本数据类型,如果两个值相同,则结果为true 而在比较引用时,如果引用指向内存中的同一对原创 2011-09-10 11:31:06 · 592 阅读 · 0 评论 -
内存碎片
内存碎片 内存碎片分为:内部碎片和外部碎片 【内部碎片】 内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间; 内部碎片是处于区域内部或页面内部的存储块。占有这些区域或页面的进程并不使用这个存储块转载 2011-09-14 00:17:09 · 778 阅读 · 1 评论 -
模拟htonl、ntohl、htons、ntohs函数实现
模拟htonl、ntohl、htons、ntohs函数实现 2010-04-14 17:25:06| 分类: 网络编程 | 标签: |字号大中小 订阅 From: http://wxxweb.blog.163.com | Author: wxxweb转载 2011-09-13 20:23:22 · 8224 阅读 · 0 评论 -
ntohs, ntohl, htons,htonl的比较和详解
ntohs, ntohl, htons,htonl的比较和详解ntohs =net to host short int 16位htons=host to net short int 16位ntohs =net to host long int 32转载 2011-09-13 20:06:41 · 1561 阅读 · 0 评论 -
error exception
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。出。不可能指望程序能处理这样的情况。exception 表示一种设转载 2011-09-10 11:33:19 · 641 阅读 · 0 评论 -
#ifndef,#define #endif作用
一方面是防止头文件被重复包含或未包含,例如 #ifndef "... " #include ".. " #endif 等等 另外还能让代码适应多种环境,如常见的 _C_PLUS_PLUS等,也就是让编译器在不同的环境下选择合适的代原创 2011-09-10 16:08:32 · 1246 阅读 · 1 评论 -
strlen(str)和sizeof(str)
1)int x=35; char str[10]; //问:strlen(str)和sizeof(str)的值分别是多少? 答:strlen(str) 值不确定,strlen根据'\0'确定字符串是否结束。 sizeof(str)=10 sizeof一个转载 2011-09-10 15:05:40 · 7258 阅读 · 0 评论 -
从两道经典试题谈C/C++中联合体(union)的使用
从两道经典试题谈C/C++中联合体(union)的使用试题一:编写一段程序判断系统中的CPU是Little endian还是Big endian模式?分析:作为一个计算机相关专业的人,我们应该在计算机组成中都学习过什么叫Little endian和Big endi转载 2011-07-29 15:24:37 · 1291 阅读 · 0 评论 -
查找子字符串个数的标准C函数
int Count(char *const a,char *const b) {//a为主串,b为子串 char *p=a,*q=b; int count=0; while(*p) { if ((*p==*q)&&(*q)) //匹配转载 2011-09-10 11:24:31 · 3502 阅读 · 1 评论 -
对(volatile unsigned char *)分析
对(volatile unsigned char *)分析 对于(volatile unsigned char *)0x20我们再分析一下,它是由两部分组成: 1) (unsigned char *)0x20,0x20只是个值,前面加(uns原创 2011-08-07 17:49:12 · 5954 阅读 · 3 评论 -
指针、结构体的安全规范
指针赋予了C编程最大的灵活性;结构体使得C程序整齐而紧凑;联合体在某些要求注重效率的场合有精彩的表现,这三个要素是C语言的精华。 然而,精华并不意味着完美,C语言在赋予程序员足够灵活性的同时,也给了程序员很多犯错误的机会。所以有必要关注指针、结构体和联合体的实现细节原创 2011-08-07 17:41:28 · 1148 阅读 · 0 评论 -
请用C语言在32位环境下,设计一个32位无符号长整数求和函数,相加之和存储在两个32位无符号整数
请用C语言在32位环境下,设计一个32位无符号长整数求和函数,相加之和存储在两个32位无符号整数中,函数接口定义为void Add64(unsigned int add1, unsigned int add2, unsigned int* pSumHigh, unsi转载 2011-09-14 13:59:21 · 5444 阅读 · 0 评论 -
C语言中,static的作用
局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文转载 2011-09-14 00:21:44 · 1157 阅读 · 0 评论 -
Shell的getopts和C语言的getopt对比
Shell的getopts和C语言的getopt对比 Note:shell的getopts来处理shell脚本命令行参数的的,c语言的getopt函数是处理C程序命令行参数的,刚刚开始的时候我没注意到两者竟然有不同的在处理数据的时候,真亏得我的一个不可失去的好友啊,呵呵。 注意:在shell和c里OPTIND和optind都指向下一个参数的位置1、 Shell的getopts转载 2012-08-25 00:00:59 · 1418 阅读 · 0 评论 -
Shell里的case和变量连接
Shell里的case和变量连接 部分来自:http://bbs.chinaunix.net/thread-542727-1-1.html 注意:C语言里的switch-case语句的用法,switch(number):{ case 1: printf(“ 1 ”);case 2: printf(“ 2 ”);case 3: printf(“ 4转载 2012-08-24 23:57:52 · 2481 阅读 · 0 评论 -
C程序调用shell脚本共有三种方法
C程序调用shell脚本共有三种方法C程序调用shell脚本共有三种法子 :system()、popen()、exec系列函数call_exec1.c ,内容为:system() 不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程,然后exec 自己的命令popen() 也可以实现执行你的命令,比system 开销小1)s转载 2012-07-29 10:15:10 · 1231 阅读 · 0 评论 -
fprintf printf 区别
fprintf()函数根据指定的format(格式)(格式)发送信息(参数)到由stream(流)指定的文件printf 将内容发送到Default的输出设备,通常为本机的显示器,fprintf需要指定输出设备,可以为文件,设备。 #include int printf( const char *format, ... ); printf()转载 2011-12-08 11:56:50 · 6940 阅读 · 1 评论 -
Error #include nested too deeply
出现 Error #include nested too deeply 原因是:头文件相互包含。例如,一个工程中bsp.h 包含 LocDongle.h, LocDongle.h又包含bsp.h,编译时就会报Error #include nested too deeply 。解决办法:1、将两个头文件共用的那一部分抽出来单独建一个头文件。2、加预处理#ifndef.原创 2011-12-05 18:58:52 · 34590 阅读 · 1 评论 -
杂记1 负数还有另一个性质,就是不管在符号位的前面再添加多少个1,值都不变
我们知道,在2 进制补码表示法中,最高位是符号位,且所有负数的符号位都是1。但是负数还有另一个性质,就是不管在符号位的前面再添加多少个1,值都不变。于是,在把一个8 位或16 位负数扩展成32 位时,欲使其数值不变,就必须把所有高位全填1。至于正数或无符号数,则只需简单地把高位清0。原创 2011-04-02 10:51:00 · 856 阅读 · 0 评论 -
malloc()与 calloc()区别 (转)
malloc()与 alloc()区别 (转)malloc()与 alloc()C语言跟内存分配方式(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。转载 2011-09-17 17:53:28 · 629 阅读 · 0 评论 -
C 内存管理详解
踏入C中的雷区——C 内存管理详解程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存转载 2011-07-29 11:46:03 · 707 阅读 · 0 评论 -
排序算法 种类 总结 介绍
一、插入排序(Insertion Sort)1. 基本思想:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。2. 排序过程: 【示例】:[初始关键字] [49] 38 65 97 76 13转载 2011-09-17 18:04:54 · 5037 阅读 · 0 评论 -
排序算法总结
排序算法总结按平均时间将排序分为四类:(1)平方阶(O(n2))排序 一般称为简单排序,例如直接插入、直接选择和冒泡排序;(2)线性对数阶(O(nlgn))排序 如快速、堆和归并排序;(3)O(n1+£)阶排转载 2011-09-17 17:46:21 · 506 阅读 · 0 评论 -
指针与数组 区别
引言 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一转载 2011-09-18 21:26:34 · 610 阅读 · 0 评论 -
常量指针和指针常量
常量指针和指针常量转自:http://www.cnblogs.com/longyi1234/archive/2010/03/30/1700369.html#1791155在C/C++的学习中,有人经常搞不清楚“常量指针”和“指针常量”这两个概念。其实简单一点讲,“常量转载 2011-09-17 17:17:37 · 647 阅读 · 0 评论 -
进程间通信
进程间通信进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以转载 2011-09-16 11:40:48 · 1196 阅读 · 0 评论 -
setjmp longjmp
setjmp 与刺激的abort()和exit()相比,goto语句看起来是处理异常的更可行方案。不幸的是,goto是本地的:它只能跳到所在函数内部的标号上,而不能将控制权转移到所在程序的任意地点(当然,除非你的所有代码都在main体中)。 为了解决这个限制,转载 2011-09-15 09:23:09 · 634 阅读 · 0 评论 -
C结构体中的函数指针与函数
C结构体中的函数指针与函数 C结构体中的函数指针与函数1. 函数指针 一般的函数指针可以这么定义:int(*func)(int,int); 表示一个指向含有两个int参数并且返回值是int形式的任何一个函数指针. 假如存在原创 2011-08-07 17:21:43 · 4508 阅读 · 0 评论 -
可重入函数
【todototry】:每次执行时候,状态一样含静态局部变量的函数非可重入的,因为保持上一次的执行状态一般函数都是的那可以重入的函数,okokok【fengdream】:这概念主要在多任务环境中使用,如果只是在main()中一个while(1)任务循环,重入与转载 2011-08-07 17:55:17 · 769 阅读 · 0 评论 -
C指针(转)
C指针(转) 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。转载 2011-08-07 17:53:56 · 612 阅读 · 0 评论 -
关于数组&a a
main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); } 答案:2。5 *(a+1)就是a[1],*(ptr-1)就是a[4],执行结果是2,5 &a+1不是原创 2011-07-21 10:59:32 · 667 阅读 · 0 评论 -
不引入第三变量,交换两个变量的值
题目:已知两变量a和b,设计一个算法,交换a与b的值。1、最传统,最广泛,最著名的方法,增加一个变量,代码如下:int a, b;int c;c=a;a=b;b=c;2、不增加第三个变量,交换a和b的值,代码如下:int a, b;a = a+b;b = a-b;a=a-b;分析转载 2011-07-19 16:51:50 · 1620 阅读 · 0 评论 -
strcpy,strcat, strcmp, atoi, itoa函数原型实现
基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)2010-10-09 17:33转载自 mickeysullivan最终编辑 mickeysullivanstrcpy:/*********************** C语言标准库函数strcp转载 2011-07-19 16:35:25 · 5021 阅读 · 2 评论 -
用GDB调试程序
用GDB调试程序说明从CSDN的网站上找到的GDB使用说明。 原文标题:用GDB调试程序作者:haoel (QQ是:753640,MSN是: haoel@hotmail.com)关键字:gdb 调试 c c++ gun这篇文章非常好,所以转载了下来,作为收藏。topGDB转载 2011-07-29 11:41:37 · 497 阅读 · 0 评论 -
#define中 #与##的用法
#define中 #与##的用法本文引用自zjf30366《#define中 #与##的神奇用法》#define f(a,b) a##b #define d(a) #a #define s(a) d(a) void main( void ) { puts(d(f(a,b)转载 2011-07-29 11:19:33 · 722 阅读 · 0 评论 -
STM32 启动代码 startup.c main函数之前解析
程序运行main函数之前解析//=====================================================================//TITLE:// main函数之前解析//Environment:// MDK 4.1//==原创 2011-07-29 11:15:38 · 10209 阅读 · 3 评论