C语言
ahnselina
这个作者很懒,什么都没留下…
展开
-
一个小程序,你知道EOF的值是多少吗?
最近在看传说中的《C程序设计语言》(TCPL),读到关于EOF这。EOF定义在头文件中,是一个整型数。那么具体是什么数呢?我们这就来一窥究竟,其实我知道很多人早就知道了,人艰不拆嘛^_^#include int main(void){ int c = EOF; printf("EOF = %d", c); return 0;}程序的输出是:EO原创 2013-09-05 21:12:37 · 8216 阅读 · 4 评论 -
51NOD OJ 活动安排类问题
问题是这样的,前面是51NOD上的课程分析,可以自己先看题目先尝试下,再看解题思路(具体参见:http://www.51nod.com/tutorial/course.html#!courseId=14):有若干个活动,第i个开始时间和结束时间是[Si,fi),只有一个教室,活动之间不能交叠,求最多安排多少个活动?分析: 我们就是想提高教室地利用率,尽可能多地安排活动。考虑容易想到的几原创 2016-03-12 00:51:01 · 978 阅读 · 1 评论 -
51NOD OJ 完美字符串
输入输入一个字符串S(S的长度 输出由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度。输入示例dad输出示例77请选取你熟悉的语言,并在下面的代码框中完成你的程序,注意数据范围,最终结果会造成Int32溢出,这样会输出错误的答案。不原创 2016-03-09 23:32:58 · 1135 阅读 · 0 评论 -
Linux中线程与CPU核的绑定
最近在对项目进行性能优化,由于在多核平台上,所以了解了些进程、线程绑定cpu核的问题,在这里将所学记录一下。 不管是线程还是进程,都是通过设置亲和性(affinity)来达到目的。对于进程的情况,一般是使用sched_setaffinity这个函数来实现,网上讲的也比较多,这里主要讲一下线程的情况。 与进程的情况相似,线程亲和性的设置和获取主要通过下面两个函数来实现:转载 2014-11-27 00:05:05 · 921 阅读 · 0 评论 -
线程绑定CPU核
Linux系统提供API函数sched_setaffinity和sched_getaffinity用于设置或获取线程的可以使用的CPU核。int sched_setaffinity(pid_t pid, unsigned int cpusetsize, cpu_set_t *mask);这个函数中pid表示需要设置或获取绑定信息的线程id(或进程id),如果为0,表示对当前调用的线程进行设转载 2014-11-27 00:31:19 · 1642 阅读 · 0 评论 -
windows命令行(或linux)下用gcc/g++编译多个c/cpp文件
最近一直强迫自己用命令行的方式来编译连接运行文件,当然这个在单个文件的情况下还是很好搞定的嘛。。。不过在开始学会把一个程序分成几个文件后(有头文件之类的和其他的几个c/cpp文件),不知道怎么编译运行就是个问题了,而且会出现一些常见错误。 下面主要介绍下常用的方式: 单个文件的情况: g++ filename.cpp 这是原创 2013-11-27 15:17:17 · 9737 阅读 · 0 评论 -
如何编写Linux下的cat命令?
熟悉linux的童鞋应该都知道cat命令,今天本文就带大家来自己实现linux下的这个命令^_^ 预备知识:C语言文件处理的一些知识。 关于文件访问,问题在于,如何设计命名文件的读取过程呢?换句话说,如何将用户需要使用的文件的外部名称同读取数据的语句关联起来。 方法其实很简单。在读写一个文件之前,必须通过库函数fopen打开该文件。fopen用类似于x.c或x.txt原创 2013-11-06 11:58:28 · 2905 阅读 · 0 评论 -
getchar putchar是宏还是函数?
在看《C程序语言》讲文件操作的时候(第七章),书上说“类似于getchar和putchar,getc和putc是宏而不是函数。这也就是说getchar和putchar是宏不是函数”。我原来一直没注意,以为就是函数呢⊙﹏⊙b汗。查了一下相关资料发现其实是这样的: ===================C陷阱与缺陷 139======================================原创 2013-11-05 21:27:46 · 2460 阅读 · 0 评论 -
指针数组、数组指针、指向函数的指针
本文主要介绍一下三个在C语言中对于初学者容易混淆的概念。 指针数组,其英文是array of pointers,要理解这个概念,其实只需要知道指针数组就是用于存指针的数组,就像我们说的整型数组一样,有时候中文简称确实是很容易让人混淆。 数组指针,要理解这个概念,首先要知道它是一个指针,其实就是指向数组的指针,其英文是a pointer to an array很简单明原创 2013-11-04 21:21:04 · 705 阅读 · 0 评论 -
如何统计输入中所有单词出现的次数?
问题描述:统计输入中所有单词的出现次数。因为预先不知道出现的单词列表,所以无法方便地排序,并使用折半查找;也不能分别对输入中的每个单词都执行一次线性查找,看它是否在前面是否已经出现,这样做,程序的执行时间将花费太长。那么如何组织这些数据,才能有效地处理一系列任意的单词呢? 一种解决办法是,在读取任意单词的同时就把它放到正确的位置上,从而始终保证所有的单词是按顺序排列的。虽然这可以不用原创 2013-10-29 18:16:47 · 3620 阅读 · 0 评论 -
一个用于统计输入中各个C语言关键字出现次数的程序
考虑写一个用于统计输入中各个C语言关键字出现次数的程序。我们可以用一个字符串数组来存放关键字名,一个整型数组存放相应关键字的出现次数。 另外一种方法是我们直接用结构体来表示。本例采用用结构体的方法。完整代码如下:#include #include #include #define MAXWORD 100#define NKEYS (sizeof(keytab原创 2013-10-31 18:36:19 · 2359 阅读 · 0 评论 -
计算机是如何执行程序的(以汇编一个简单的C程序,分析汇编代码为例)
ahnselina 原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 下面为test.c的代码:int g(int x){ return x + 1;}int f(int x){ return g(x);}int main(v原创 2016-02-28 23:19:03 · 3191 阅读 · 1 评论