[ C语言学习 ]
过去不再从来
反应有点慢
展开
-
面试题atoi
#include<stdio.h>int myatoi(char * str){ int sign = 0; int result = 0; if (str == NULL) { printf("Invalid input.\n"); return -...原创 2019-03-02 23:01:28 · 309 阅读 · 0 评论 -
P.J.Plauger<ctype.h>
//http://www.lellansin.com/c标准库-ctype-h-_ctype转换表原理.html转载 2014-11-11 21:18:09 · 1051 阅读 · 0 评论 -
#define定义回调函数用法
#define IFCALL(_cb, ...) do{ if(_cb != NULL){ _cb( __VA_ARGS__ ); } }while(0)#define IFCALLRET(_cb, _ret, ...) do { if (_cb != NULL) { _ret = _cb( __VA_ARGS__ ); } } while (0)int add(int a,int原创 2014-09-29 11:30:02 · 1515 阅读 · 0 评论 -
字节对齐
android freerdp学习#ifdef __GNUC__#define ALIGN64 __attribute__((aligned(8)))#else#ifdef _WIN32#define ALIGN64 __declspec(align(8))#else#define ALIGN64#endif#endif原创 2014-10-07 10:03:21 · 593 阅读 · 0 评论 -
typedef的定义说明
typedef type-declaration synonym;The typedef keyword defines a synonym for the specified type-declaration. The identifier in the type-declaration becomes another name for the type, instead of nami转载 2014-10-08 09:05:38 · 635 阅读 · 0 评论 -
c语言的小结(1)
今天,突然有一个想法冲击了过来:这是为什么呢?每一个存在的东西,都有化的必然性。在C学习的畅游中,很多时候没有去想why?即使去想也没有想通!一个问题一个问的集累:故不积跬步,无以至千里;不积小流,无以成江海。骑骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂(激励一下自己)memcpy: NAME memcpy - copy memor原创 2013-11-01 00:25:48 · 469 阅读 · 0 评论 -
CRC校验
http://blog.csdn.net/liyuanbhu/article/details/7882789写给嵌入式程序员的循环冗余校验(CRC)算法入门引导前言CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC 算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,我认识的嵌入式程序员中能真正掌握CR转载 2014-07-31 11:04:32 · 1170 阅读 · 0 评论 -
c与C++学习方向
http://blog.csdn.net/cscmaker/article/details/7028136 最近在查资料,看博客的时候,收藏了几个学习C和C++的博客,这些博客里面的文章不仅有很多很好的技术文章,而且还介绍了很多如何学习,怎样学习等等的文章。博客里的很多文章对于一个还属于菜鸟的我有很大的启发。 这里秉承互联网分享的优良传统,不敢独享。列出转载 2014-06-12 20:53:51 · 491 阅读 · 0 评论 -
setjmp与longjmp
http://blog.csdn.net/cscmaker/article/details/7584433转载 2014-06-12 20:46:49 · 418 阅读 · 0 评论 -
C语言之路
http://blog.jobbole.com/15384/糟糕的C读物(不要忽略这一段)我将以一些我认为不必太认真的读物说起:网络教程,博客以及大部分Google上得到的东西都算(没错,也包括我这篇)。通常我认为这些资料来源是不可信的,而且有潜在的危害。和这一行里大部分人一样,我曾是重度Google搜索使用者。过了一段时间之后,我发现不准确的答案反而对生产力的提高有反效果。这转载 2014-05-09 18:40:57 · 615 阅读 · 0 评论 -
undefined reference to "...."
undefined reference to ""转载▼“undefined reference to”的意思是,该函数未定义。如果使用的是gcc,有以下检查方案:如果提示未定义的函数是某个库的函数。检查库时候已经安装,并在编译命令中采用-l和-L参数导入库。如果提示未定义的函数是程序中的函数。检查是否在头文件中声明,是否在编译中有对应的转载 2014-05-09 12:36:22 · 1324 阅读 · 0 评论 -
链表反转
/***********************算法如下******************************************将oldlist从头一个一个的断下,然后一个一个按顺序插入新头**************************************************************************/struct student原创 2014-02-11 15:51:58 · 482 阅读 · 0 评论 -
对线性表(例如整形数组的各种排序)
#include#if 0/*******************************************quick sort*************************************************/void quick(int *s,int left,int right){if(left>=right)return;int l原创 2014-02-11 21:13:56 · 927 阅读 · 0 评论 -
C中的宏
http://blog.sina.com.cn/s/blog_5ef988640100ce1k.html1. 字符串化操作符#例如:#define macro(x) #x宏展开后x会变为”x”.另外,根据c语言的特性,两个字符串挨在一起(或中间间隔几个空格)时会自动粘帖,所以经常有如下的用法:#define DEBUG(n) printf(#n” =转载 2014-10-26 15:18:15 · 399 阅读 · 0 评论 -
C函数中可变参数传递
freerdp中的小段代码/* callback to freerdp class */void freerdp_callback(const char * callback, const char * signature, ...){va_list vl; va_start(vl, signature);//c标准库中处理可变参数java_callback_void(j原创 2014-09-30 16:14:12 · 953 阅读 · 0 评论 -
#define 用法
freerdp中:#ifndef FALSE# define FALSE (1 == 0)# define TRUE (! FALSE)#endif原创 2014-10-10 16:09:12 · 495 阅读 · 0 评论 -
字符串面试题
#include<stdio.h>#include<assert.h>#include<string.h>char * mystrcpy(char * dest, const char * src){ assert((dest!=NULL) && (src!=NULL)); char *addr = de...原创 2019-03-02 22:24:18 · 310 阅读 · 0 评论 -
c中的一些变量大小
[root@localhost smb1]# cat main.c #include <stdio.h>#include <stdlib.h>#include <string.h>void func(char str[100]){ printf("func:%d\n",sizeof(str));}int main(int arc, char ** argv){原创 2016-09-17 00:29:22 · 530 阅读 · 0 评论 -
面试题001
#include <stdio.h>#include <stdlib.h>int main(int arc, char ** argv){ int arr[]={5,6,7,8}; int i=0; int *ptr = arr; *(ptr++) +=123; printf("%d,%d\n",*ptr,*(++pt原创 2016-09-17 00:05:46 · 289 阅读 · 0 评论 -
switch():括号中的值
#include <stdio.h>#include <stdlib.h>int main(int arc, char ** argv){ int c = 1;//只能为整数常量,或是常量表达式 switch(c) { case 1:原创 2016-09-16 23:12:28 · 5011 阅读 · 0 评论 -
main函数参数
指针数组使用二维指针访问,跳过函数名自身[root@localhost smb1]# cat main.c#include <stdio.h>#include <stdlib.h>int main(int arc, char ** argv){ while(*++argv != NULL) printf("%s\n",*argv);原创 2016-09-10 22:55:52 · 274 阅读 · 0 评论 -
面试题1
<1>.下面的代码输出结果; <2>.下面的代码的问题。文件test.c#include <stdio.h>#include <pthread.h>unsigned long sum_var=0;void * sum(void * para){ int count= (int)para; for (;count;count--)原创 2015-12-03 13:16:16 · 253 阅读 · 0 评论 -
时间函数积累与记录
关于linux应用层的时间函数:1.gettimeofday struct timeval tpstart,tpend; gettimeofday(&tpstart,NULL); printf("start time is --sec:%d--usec:%d\n",tpstart.tv_sec,tpstart.tv_usec);原创 2015-03-19 11:05:39 · 421 阅读 · 0 评论 -
sizeof
装载:http://www.cnblogs.com/chengxin1982/archive/2009/01/13/1374575.html面试的时候常常考。sizeof()用法汇总sizeof()功能:计算数据空间的字节数1.与strlen()比较 strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组转载 2015-01-16 09:14:46 · 477 阅读 · 0 评论 -
结构体位域
转载:http://www.cnblogs.com/bigrabbit/archive/2012/09/20/2695543.html上接sizeof()C结构体之位域(位段)有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言转载 2015-01-16 09:37:02 · 1446 阅读 · 0 评论 -
用#define来代替计算
freeRDP中利用宏来计算,#define Stream_Read_UINT64(_s, _v) do { _v = \(UINT64)(*_s->pointer) + \(((UINT64)(*(_s->pointer + 1))) (((UINT64)(*(_s->pointer + 2))) (((UINT64)(*(_s->pointer + 3))) (((UI原创 2014-10-14 15:20:55 · 1186 阅读 · 0 评论 -
assert()---man手册
ASSERT(3) Linux Programmer's Manual ASSERT(3)NAME assert - abort the program if assertion is falseSYNOPSIS #include void asser原创 2014-10-10 11:27:41 · 535 阅读 · 0 评论 -
链表1
============================================================================================================================================#include#include#include//链表的初始化,插入元素,查找元素,删除元素,原创 2013-09-24 09:47:01 · 587 阅读 · 0 评论 -
getline-strstr-strtok
//应用层中的那两个函数strstr//strtok//getline#include #include struct person{int number;char name[20];int age;int grade;}; int main(){struct pe原创 2013-09-10 22:17:40 · 819 阅读 · 0 评论 -
链表操作表格
//我们把grade.c中的内容名字字符串,按大小排列,后写入另一个文件//中#include#include#include#include#include#include#include#include//根据表格,我们写义一个结构体来存储,这个文件中每个人的信息Struct person{int number;char na原创 2013-09-10 22:04:21 · 756 阅读 · 0 评论 -
fork
fork学习的小例子============================================================================================================================#include"include.c"int main(){pid_t pid;pid=fork();if(原创 2013-09-24 09:57:14 · 738 阅读 · 1 评论 -
链表2
#include#include //3+3x+3y+10+10x+10y=13+13x+13y//用循环链表实现typedef struct suanshu{int num;float numx;char x;float numy;char y;struct suanshu *next;}SU;void print(SU *head);S原创 2013-09-24 09:47:26 · 914 阅读 · 0 评论 -
联合与枚举
============================================================================================================================联合#includeunion dd{char c;int d;};int main(){int n=43241原创 2013-09-24 09:43:10 · 579 阅读 · 0 评论 -
c 中的一个经典错误:画内存图
#includevoid copy(const char *from,char *to);int main(){ char a[]="hejia ni hao!";//14个字节 char b[]="hello world!";//13个字节 char *ptr=a, *ptr1=b;printf("a:%p,b:%p,&ptr:%p,&ptr1:%p",a原创 2013-09-24 09:29:50 · 1058 阅读 · 0 评论 -
C程序小结3
==================================================================================================================================//strcpy#include#include char *mystrcpy(char *dest,const原创 2013-09-24 09:22:12 · 517 阅读 · 0 评论 -
C程序小结2
=================================================================================================================测试机器的字节数 1 #include 2 int main(){ 3 #if 0 4 int a=5,j=8,sum; 5原创 2013-09-24 09:02:33 · 565 阅读 · 0 评论 -
面试小题
#include int main(){int i,j;int num=16;int a[17];for(i=1;i{a[i-1]=i;}for(i=1,j=0;num>0;i++,j++){ if((j != 17)&&(a[j] != 0)){if(0==i%3){num--;a[j]=0;}}if(j==17)j原创 2013-09-24 02:26:32 · 585 阅读 · 0 评论 -
队列的实现
=========================================================================================================================//用链表实现队列 #include#include#include#include #define QUEUE_TYPE i原创 2013-09-24 09:37:36 · 500 阅读 · 0 评论 -
两种堆栈实现
=====================================================================================================================//用静态数组实现堆栈#include#include #define STACK_TYPE int//栈里面所存数据的类型#define S原创 2013-09-24 09:34:39 · 596 阅读 · 0 评论 -
C程序小结4
==========================================================================================================================//malloc#include#includeint *max(int *ptr,int len);int main(){原创 2013-09-24 09:28:10 · 583 阅读 · 0 评论