
C语言
yaoel
云计算从业者
展开
-
关于c语言中时间函数的一些归纳
头文件#include 概述:ctime(),gmtime(),localtime()函数都带有一个代表日历时间的time_t类型的参数。当要描述为一个绝对的值时,它代表从新纪元(1970年1月1日凌晨)开始到现在所流逝的秒数。asctime()和mktime()函数带有一个参数代表修正时间(分解时间),这是一个代表值分解成年、月、日等等。休正时间(broken-down ti原创 2013-11-21 12:33:03 · 1293 阅读 · 0 评论 -
C中的volatile用法
嵌入式编程中经常用到 volatile这个关键字,在网上查了下他的用法可以归结为以下两点:一:告诉compiler不能做任何优化 比如要往某一地址送两指令: int *ip =...; //设备地址 *ip = 1; //第一个指令 *ip = 2; //第二个指令 以上程序compiler可能做优化而成: int *ip = ...;转载 2014-08-25 14:59:29 · 862 阅读 · 0 评论 -
软件文档编写向导
文档分类项目包括如下几类文档; 项目管理文档。包括:《软件项目计划》、《项目进度报告》、《项目开发总结报告》软件开发文档。包括:《需求规格说明》、《概要设计说明》、《详细设计说明》。软件测试文档。包括:《测试计划》、《软件测试分析报告》。产品资料。包括:《用户操作手册》。文档的版本号 本项目文档的版本号由以圆点隔开的两个数字组成,第一个数字表示出版号,第二个数转载 2014-08-26 11:07:52 · 1746 阅读 · 0 评论 -
STM32中assert_param的使用
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用。如果打开任何一个例程中的stm 32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义;在固件库中,它的作用就是检测传递给函数的参数是否是有效的参数。 所谓有效的参数是指满足规定范围的参数,比如某个参数的取值范围只能是小于3的正整数,如果给出的参数大于3,则这个as转载 2014-08-25 15:15:29 · 1668 阅读 · 0 评论 -
在C语言中嵌入汇编语言方法
两种方法在c语言中嵌入汇编: (1) __asm(" 字符串序列"); 例如:__asm(" MOVN A,#1"); (2) #pragram asm 汇编语句 #pragram endasm例如: #pragram asm MOVN A,#1 MOVW _temp,A转载 2014-08-25 13:57:15 · 5433 阅读 · 0 评论 -
enum与typedef enum的用法
在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7 在此,我们定义一种新的数据类型,希望它能完成转载 2014-08-25 12:45:14 · 1609 阅读 · 0 评论 -
关于c语言中负数位移位操作的漫谈
最近有个朋友在程序中使用了对16进制数做负数移位(编译器是gcc),本人最次产生好奇,所以研究了一些。对一个数做负数位移位的操作是不规范的,但是是可行的。具体例子:char tmp = 0x10;tmp = tmp 大家猜猜结果是什么,有人猜是tmp左移-1位不就是右移1位吗?结果是0x01?很遗憾,电脑和人脑是不一样的。结果是0为什么呢?为了找出原因,本人进行原创 2014-07-02 22:01:17 · 6043 阅读 · 3 评论 -
如何解决程序退出重启后不能绑定端口的问题?
发现问题:在Linux系统中,如果一个socket绑定了某个端口,该socket正常关闭或程序退出后,在一段时间内该端口依然保持被绑定的状态,其他程序(或者重新启动的原程序)无法绑定该端口。解决方案:可以在获得socket描述符之后通过调用setsockopt语句避免该问题:int sockfd;int opt = 1;int len = sizeof(opt);soc原创 2014-01-21 12:32:57 · 2815 阅读 · 0 评论 -
再论句子中单词的逆序输出
今天,有个朋友看了我的一篇关于将句子中单词次序翻转并输出的文章,说这个程序只做到了输出,没有存储,实用不大。链接在下面!http://blog.youkuaiyun.com/persistvonyao/article/details/16909199对此,我思考良久,决心重写这个程序!下面是我重写的程序:#include #include #define N 128/* * @auth原创 2014-01-03 21:56:26 · 1850 阅读 · 1 评论 -
一个面试题:翻转句子中单词的顺序
题目要求:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。(注意处理在输入字符串时的回车字符)输入:需反转的字符串输出:按照要求反转后的字符串示例:例如输入“I am a student.”,则输出“student. a am I”自己写的代码如下:仅供参考,如有错误和不妥之处,请大家指正。原创 2013-11-23 23:06:23 · 2044 阅读 · 3 评论 -
c语言中的内存管理(重点:动态内存申请释放,野指针,指针函数)
内存分布:代码区全局变量与静态变量区(全局变量,字符串常量等)局部变量区(栈区)(自动分配,自动回收)动态存储区(堆区)动态内存1.内存申请malloc要注意: 1)参数:要申请空间的大小 2)返回值:void * 3)要加出错判断2.内存释放free要注意: 1)释放的一定是起始地址 2)释放内存的原创 2013-12-04 13:39:46 · 2101 阅读 · 0 评论 -
字符串过滤
要求:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。代码如下:#include #include int main(int argc, const char *argv[]){char str[128];char ap[原创 2013-11-03 10:40:31 · 1527 阅读 · 2 评论 -
关于本地socket的举例详解
最近做的项目中碰到一个新的东西,叫做本地socket。查了好久的资料,也man unix 看了里面的介绍,还是不太理解本地socket怎么使用的。下面是我在网上找到的资料。经过本人的学习及程序运行,没有问题。觉得很不错,所以分享一下!一、先说一下本地socket的来源:socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIXDomain原创 2013-12-18 16:13:28 · 2993 阅读 · 0 评论 -
内存拷贝函数的编写整理(很流行的面试题)
很多公司都喜欢出关于内存拷贝的这么一道题,下面是本人整理的关于内存拷贝函数编写的过程,仅供参考。以下是我在一次模拟笔试中写的程序:void MyMemcpy(char *dst,char *src,int count){ while(count--) { *dst++ = *src++; }}很显然,这样的程序时不合格的。首先,定原创 2013-12-04 23:00:21 · 1883 阅读 · 0 评论 -
关于把字符串整数转换成整数的程序
前几天去了先锋商泰面试,在面试时做了一个把输入的整数(例如:4238)重新排序成2348输出的题目。由于自己没有准备充分,只是把功能写出来了。后来没有拿到offer。今天在看《剑指offer》时,发现自己少了很多边界条件和错误的处理。在剑指offer这本书上有个题目:题目:把一个字符串转换成整数。下面是要注意的事项:不能只完成基本的要求,还要考虑最大整数和最小负整数以及溢出原创 2013-11-14 14:41:13 · 1586 阅读 · 4 评论 -
关于strlen函数的一个问题
最近有个同学给了我一个这样的程序:#include #include int main(int argc, const char *argv[]){char a[10] = "abcde";char b[] = "abcdef";if(strlen(a) - strlen(b) >= 0) printf("a > b\n");else print原创 2013-11-13 20:13:58 · 1744 阅读 · 0 评论 -
struct用法深入探索
1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。 在网络协转载 2014-08-26 15:04:12 · 1114 阅读 · 0 评论