摘要:#include #include #include int main(void){ time_t timer;//time_t就是long int 类型 struct tm *tblock; //time()获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数...
阅读全文
随笔分类 - C
摘要:typedef unsigned int size_t; void * my_memcpy ( void *dest, const void *src, size_t num ) { void* ret = dest; while (num--) { *...
阅读全文
摘要://将源字符串加const,表明其为输入参数char*strcat(char*strDest,constchar*strSrc){//后文returnaddress,故不能放在assert断言之后声明addresschar*address=strDest;assert((strDest!=NULL)...
阅读全文
摘要:char* strchr(char*s,charc){while(*s!='\0'&&*s!=c){++s;}return*s==c?s:NULL;}// strchr.c查找字符串s中首次出现字符c的位置#include#includechar* my_strchr(const char *s1,...
阅读全文
摘要:char * strdup(char *str) { char * strNew; assert(str != NULL); strNew = (char *)malloc(strlen(str)+1); strcpy(strNew,str); return strNew;} ...
阅读全文
摘要:#include#includeint my_strlen(const char* strDest){ assert(NULL!=strDest); if('\0'==*strDest) return 0; else return(1+my_strlen...
阅读全文
摘要:#includechar *my_strncpy(char *dest,char *src,int n){ int i; for(i=0;i<n && src[i]!='\0';i++) dest[i] = src[i]; for(;i<n;i++) ...
阅读全文
摘要:#include#includeint main(){char buf[512],sztime1[16],sztime2[16];sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!printf("%s\n", buf)...
阅读全文
摘要:#include#includeint my_strcmp(const char*a,const char*b){ while(*a&&*b&&*a==*b) a++,b++; if(*a&&*b) return(*a-*b); else if(*a&&...
阅读全文
摘要:// strstr.c查找完全匹配的子字符串#include#includechar *my_strstr(const char *s1,const char *s2){ const char *p=s1; const int len=strlen(s2); for(;(p=str...
阅读全文
摘要:实现:char *strcpy(char *strDestination,const char *strSource){assert(strDestination!=NULL && strSource!=NULL);char *strD=strDestination;while ((*strDest...
阅读全文
摘要:1. C语言变量主要分为全局变量、静态全局变量、局部变量、静态局部变量和寄存器变量。其中静态变量用static关键字进行修饰。程序所占用的内存可以分为以下几个部分:(1)代码段-存放程序代码,只读的,不能修改。(2)全局区(静态区),又称为数据段。其中.data段存放的是已经初始化的全局变量和静态变...
阅读全文
摘要:1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。...
阅读全文
摘要:strlen与sizeof的区别1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。 该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数...
阅读全文
摘要:C/C++嵌入式开发面试题预处理器(Preprocessor)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语...
阅读全文
摘要:C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。指定的初始化很多人都知道像这样来静态地初始化数组:1int fibs[] = {1, 1, 2, 3, 5};C99标准实际上支...
阅读全文
摘要:inline大学在教科书上学习过inline函数,定义为inline函数之后,会省去函数调用的开销,直接嵌套汇编代码,取代函数调用,提高效率。工作后项目中也很少用到inline来定义函数,近几天在研读google的google c++ style guide,发现之前自己对inline函数的认识太过...
阅读全文
摘要:预处理器标识#error的目的是什么啊?指令 用途 # 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 ...
阅读全文
摘要:在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器...
阅读全文
摘要:如何优化C语言代码(程序员必读)5、减少运算的强度可以使用运算量小但功能相同的表达式替换原来复杂的的表达式。如下:(1)、求余运算。 a=a%8;可以改为: a=a&7;说明:位操作只需一个指令周期即可完成,而大部分的C编译器的“%”运算均是调用子程序来完成,代码长、执行速度慢。通常,只...
阅读全文
浙公网安备 33010602011771号