文章列表
网上或书上的makefile教程大多都很简单,而实际工程的makefile往往又很复杂,这时可以去gnu上查阅, make手册的网址是: http://www.gnu.org/software/make/manual/make.html,
直接查找就行了,没有什么地方比gnu官方手册更权威全面了
以 ...
- 2009-01-16 19:41
- 浏览 792
- 评论(0)
在Unix中编写新程序的一种最简单的方法就是,以现有的程序为起点,并对其进行修改,编写使用手册也是一样。
如果在某个程序中发现了漏洞并进行了修补,给程序的作者发送一个补丁比仅仅给出 对补丁的描述要更容易,更准确,也更有礼貌:
diff file1.c file2.c >diffs (区别,产生补丁)
patch file1.c diffs ( 打补丁)
patch -R file1.c diffs ( 取消补丁)
diff -c file1.c file2.c >di ...
- 2009-01-16 19:39
- 浏览 785
- 评论(0)
1. 一个函数永远无法修改它的参数的值,它只能修改这些参数的拷贝。
2.printf("a%%b=%i\n",a%b); %在格式化字符串中有特殊的意义,要打出%,需在前面加一个%
3. 转义字符: \a 警铃
4. int i;char c;
i=c-'0'; 此时若c= ...
- 2009-01-16 19:34
- 浏览 700
- 评论(0)
有两个平台无关的GUI开发方法:
Java: 使用swing和较老的AWT API
Tcl/Tk: 是一个脚本语言,非常适合GUI快速开发,
并与X,Windows,MacOS,配合运行。
Linux下GUI:
Gnome / GTK+ 2 与 KDE/QT 双分天下
Window下:
CDL(IBM China Development Lab)以下内容摘录自CDL系列书籍中的《GUI应用程序移植--在Linux上模拟Windows API的方法》
USER32
和GDI32模块是Windows下图形界面 ...
- 2009-01-16 19:33
- 浏览 918
- 评论(0)
Git 是一个版本控制工具。与常用的版本控制工具 CVS, Subversion
等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux
kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。作为linux
内核的项目管理工具,它现在已发展成熟, 目前有一些大型项目已迁移到git,如u-boot
ubuntu下安装:sudo apt-get install git-core
使用:
获取一个project的git:
以下为下载git本身的代码(10M)。
git ...
- 2009-01-16 19:30
- 浏览 1148
- 评论(0)
有关多寄存器load-store指令
- 博客分类:
- ARM
寻址模式 描述 起始地址 结束地址 Rn!
IA 执行后增加 Rn Rn+4*N-4 Rn+4*N
DB 执行前减少 Rn-4*N Rn-4 Rn-4*N
注意看DB模式的起始地址,这是能够使用
STMIA 与 LDMDB 指令对(相同寄存器数目)来临时保存一组寄存器,然后在恢复它们的关键所在。
分析ARM内核的 ...
- 2009-01-16 19:29
- 浏览 1206
- 评论(0)
输入未知数目数据,计算总和:
#include <iostream>
int main()
{
int sum = 0, value;
while (std::cin >> value)
sum += value;
std::cout << "Sum is "
<< sum << std::endl;
return 0;
}
std::cin >> value返回std::cin,while测试 std::cin就是测试std ...
- 2009-01-16 19:23
- 浏览 1385
- 评论(0)
标准库的头文件用尖括号<>括起来,非标准库的头文件用双引号括起来。
定义变量时,应该给变量赋初始值,除非确定将变量用于其他意图之前会覆盖这个初值。如果不能保证读取变量之前重置变量,就应该初始话变量。
关 ...
- 2009-01-16 19:20
- 浏览 1051
- 评论(0)
通常,头文件中应该只定义确实必要的东西,应该养成这个好习惯。
string 类型的输入操作符对空白字符的处理:读取并忽略有效字符(非空白字
符)之前所有的空白字符,然后读取字符直至再次遇到空白字符,读取终止(该
空白字符仍留在输入流中)。
getline 函数对空白字符的处理:不忽略行开头的空白字符,读取字符直至遇到
换行符,读取终止并丢弃换行符(换行符从输入流中去掉但并不存储在 string
对象中)。
为了避免溢出,保存一个string对象size的最安全的方法就是使用标准库类型string :: size_type
应采用C标准库头文件的C++版本。
#include<cct ...
- 2009-01-16 19:17
- 浏览 831
- 评论(0)
冒泡排序
- 博客分类:
- Algorithms
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vint;
int val;
cout << "Enter some numbers : " << endl;
while(cin.peek() !='\n' && cin >>val)
{
vint.push_back(val);
}
for(vector ...
- 2009-01-16 00:33
- 浏览 602
- 评论(0)
最大公约数
- 博客分类:
- Algorithms
求最大公约数的方法1:
#include<iostream>
using namespace std;
//return th greatest common divisor
int gcd(int v1, int v2)
{
while(v2)
{
int temp=v2;
v2 = v1 % v2;
v1 = temp;
}
return v1;
}
int main()
{
int v1,v2;
cin >> v1 >> v2;
in ...
- 2009-01-16 00:30
- 浏览 646
- 评论(0)
有三种在线文档,可供你查阅。
man ----传统文档
info ----GNU Project 通常会使用这种文档
/usr/share/doc 大部分的软件包会在这里安装README文件,文档或者例子等,如果你在以上两个文档中都找不到,就到这 ...
- 2009-01-16 00:22
- 浏览 2494
- 评论(0)
我们知道在 Windows 下,双击一个可执行文件,文件管理器会自动运行这个应用程序。而双击一个数据文件时,文件管理器会用与之关联的应用程序打开它。数据文件与应用程序之间的关联是通过注册表来实现的:文件管理器查询注册表,找到数据文件对应的应用程序,然后运行这个应用程序,并把数据文件的文件名作为命令行参数传给它。 这种文件关联的方式非常好用,省去了先起动应用程序再打开文件的麻烦。 Linux 下的桌面环境也有类似的功能,而且实现方式更合理。最近负责开发一个资源管理器,本来 GNOME 有一个功能强大的资源管理器 Nautilus ,只是它过于庞大,不但有超过 10 万行的代码,还依赖于 libgn ...
- 2009-01-11 16:22
- 浏览 869
- 评论(0)
语句:
使用空语句时应该加上注释,以便任何读这段代码的人都知道该语句是有意省略的。
在循环条件中定义的变量在每次循环里都要经历创建和撤销的过程。
有关cin输入流,使用文件结束符来控制元素输入的结束。但是,使用后一种方法时,在第二个输入循环之前要记得将流cin 恢复为有效状态(使用cin.clear() ).
编写一个小程序,从标准输入读入一系列string对象,寻找连续重复出现的单词,程序的输入满足以下条件:该单词的后面紧跟着再次出现自己本身。跟踪重复次数最多的单词及其重复次数。输出有重复次数的最大值,若没有单词重复则输出说明信息。
#include <iostream>
# ...
- 2009-01-10 14:35
- 浏览 748
- 评论(0)
如果两个操作数为正,除法(/)和求模(%)操作的结果也是正数(或零),而求模操作的结果则为负数(或零);如果只有一个操作数为负数,这两种操作的结果取决于机器,求模结果的符号也取决于机器,而除法操作的值则是负数(或零)
21%6 =3
21%7 =0
-21 % -8 =-5
21 % -5 = //machine dependent: result is 1 or -4
21 /6 = 3;
21 /7 =3;
-21 / -8 = 2;
21 / -5 = //machine dependent: result -4 or -5
出于性能的考虑,只有在必要时才使用后置操作符
//sizeof( ...
- 2009-01-09 10:32
- 浏览 694
- 评论(0)