关于C语言多文件编写的一点小小总结

在多文件编写中,变量,尤其的全局变量的定义和引用显得不那么精简。很多人可能会想,把全局变量放在一个*.h文件中,然后在以后的调用中只要include一下不就可以了?想想也有道理,include不就是把*.h原封不动的复制过来吗?但是,这样存在一个问题。加入定义了10个全局变量,而在具体一个*.c文件中我只用其中一个。如果用include把全局变量全都包含进来。那利用率不就才是10%吗。而且C语言常用于嵌入式,如果每个文件都include一个全局变量头文件,那么这些变量就被分配一次内存,这对嵌入式来说肯定是致命的;另外,如果有很多个文件都include了全局变量的头文件,编译器要跟踪每一个...
默认分类 | 2012-06-22 13:48 | 阅读 1981 次 | 评论 1 条

C语言俄罗斯方块

#include <windows.h>#include <ctime>#include <conio.h>#include <cstdio>const int back=34;const int speed[]={0,12,9,6,3,1};const int number[]={0,2,3,5,7,11,15};const int col[]={11,15,12,12,13,13,14};int rank=1;int level=0; //0表示既不是向右也不是向左,1表示向左,2表示向右int kind; int pri_kind; // 7大类,颜色标记,调用col[c...
默认分类 | 2012-01-31 15:22 | 阅读 1872 次 | 评论 0 条

模拟停车场(第二部作品)

#include<time.h> #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<windows.h> #define PASSWORD "000" #define PRICE 5.0 #define END 24 #define SPEED_CAR 150 #define SELCET 300 #define EXIST 1 //EXIST&#381;ú±í&#181;±&#199;°&#179;&#181;&#206;&#187;&#211;&#208;&#179;...

飘落的红叶

飘落的红叶 那片林,那片长在山尖的林,想必想必已经披上了红装;那片红叶,那片曾经承载过憧憬的红叶,想必又在承载着某人的憧憬吧;那些人,那些曾经忙着追梦的人,想必还在继续追逐当初的梦! 我爱那片红叶,因为我爱我的家乡。家乡永远牵动着游子的心,很多时候也不知道自己到底在牵挂什么。亲人?不全是,这个暑假最后一个月是和爸爸妈妈在外地过的,虽然在爸妈身边,但还是会想起家乡那边,真的不知道自己在牵挂什么,或者不叫牵挂,而叫想起。红叶飘,撒向故乡的地,飘进游子的心。故地就是这么难离,当初准备踏上异乡的土地时,寻思着,无学成,不归家,最后一定要威加海内兮归故乡。故乡给我的是不竭的勇气。 我爱那...
默认分类 | 2011-09-11 16:54 | 阅读 1025 次 | 评论 0 条

我的编程史

跌、打、滚、爬,你们想象不出我当初是怎么学编程的。 记得第一次上机时,老师布置了几道作业,说实话,那些题目我都不明白,在写代码时,饿哦每一行都是printf或者scanf,其实,那时我根本不知道scanf和printf是干什么的。坐在机房,如坐针毡。 我来自遥远的西北,在杭州求学。我本以为,大学时一个新的起点,只要我努力,我就会突出,可是我错了,我和别人根本就不在同一起跑线上,哦不想就这样落后,于是我借一个周末,外加请了两天的假,来回坐了总共50小时的车程,回家拿了电脑。 然而,人的第一影响是那么的重要,尽管在今后...
默认分类 | 2011-09-03 07:39 | 阅读 6975 次 | 评论 15 条

成为编程高手的二十二条军规

1.大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘!  2.计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣的。  3.记住:万丈高楼平地起!基础很重要,尤其是专业基础课,只有打好基础才能学得更深。  4.C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好。  5.C语言与C++语言是两回事。就像大熊猫和小熊猫一样,只是名字很像。  6.请先学习专业课《数据结构》、《计算机组成原理》,不要刚开始就拿着一本VC在看,你连面向对象都搞不清楚,看VC没有任何用处。  7.对编...
默认分类 | 2011-08-11 15:32 | 阅读 1986 次 | 评论 10 条

比较大的数的阶乘算法

#include<iostream>#include<cmath>using namespace std;int main(){ int n; while(cin>>n) { long double m=0; for(int i=1;i<=n;i++) m+=log10(i); m=pow(10,m); cout<<m<<endl; }}
默认分类 | 2011-05-18 17:12 | 阅读 888 次 | 评论 0 条

为什么会Output Limit Exceed

checksum是扫描一个数据包并返回一个数值的一种算法。其思路在于,如果数据包被修改过,那么,checksum也会立即变化。所以,checksum常常用于侦查数据传输错误,证实文档内容的完整性和其他需要检查数据不被修改的场合。 在本题中,你将实现一个 checksum算法即 Quicksum。一个 Quicksum数据包仅允许包含大写字母和空格,它通常是由一个大写字母开始和结束。然而,空格和字母可以出现在其他的位置中,连续的空格也是允许的。 Quicksum是一行字符串(数据包)中每个字符的位置与该字符的值的乘积之和。空格的值是 0,字母的值等于它在字母表中的位置。所以,A的值是 ...
默认分类 | 2011-04-05 12:41 | 阅读 1182 次 | 评论 0 条

*基础习题_字符串练习3

Description 找出一个英文字符串中第一个最长的英文单词,字符串中的各英文单词以一个或多个空格分隔或标点符号分隔。如“I am a student.”最长英文单词为”student”。 Input 输入一串字符串。(字符个数不超过500,含标点符号和英文字母,最长英文单词的字符数不超过20) Output 最长单词,占一行; Sample Input I am lucky.student went to school. Sample Output student Source #include <iostream...
默认分类 | 2011-03-28 15:07 | 阅读 919 次 | 评论 1 条

双列的万年历

#include<iostream>#include<iomanip>#include<stdlib.h>#include<conio.h>using namespace std;void print(){ cout<<" SUN MON TUR WED THU FRI SAT";}inline void print_day(int day){ cout<<setw(5)<<day;}inline void print_space(){ cout<<" ";}int main() { system("color 9a"); ...