20100601 c陷阱与指针读书笔记(第四五六章)
这三章主要讲了C语言的链接、库函数、预处理。还是有点晦涩难懂啊。
一个C程序是可以有多个部分组成的,但是编译器每次只能编译一个文件,找出其中的错误。某些C语言实现提供了一个称为lint的程序,可以捕获大量的此类错误。连接器一般是与编译器分离的,编译器是把C程序“翻译”成对连接器有意思的形式,这样连接器就能“读懂”C程序了。
对于同名引起的冲突,我们可以将这些放到一个源文件中,并用static修饰,用于若干函数共享这些数据。还有一个好方法就是每个外部对象只在一个地方声明,这个声明的地方一般就在一个头文件中,需要用到该外部对象的所有模块都应该包括这个头文件。
C语言中默认的函数类型为int。任何函数都应该在第一次被调用之前进行声明或者定义,若不这样,函数的默认类型就为int了。函数声明时,形参除了float,short,char类型的参数,在函数声明中完全可以省略参数的类型说名。
宏定义#define,预处理命令,在编译之前完成,可以简化我们的代码。有时候看上去像个函数,却没有函数的开销。宏提供了对字符的替换功能,却不使用对象。
宏的使用是:#define 宏名 替换内容 其中的空格需要注意。不然会引起错误。在使用宏的时候,如果有对参数的操作,不能重复多次(例如++,——),每一次替换都会使操作重复一次,从而带来错误。确保宏没有错误,应该注意使用括号。
一定要注意的是,宏只是替换!!
相关文档:
好久以前做的一个程序,贪心策略实现背包问题,c实现。
总结在这里,以备以后和别人查找。
//背包问题
#include "stdio.h"
#define MAX 10
void main()
{
int w[MAX]={0,10,130,15,60,25}; //存放质量
int v[MAX]={0,30,5,10,20,25}; //存放价值
flo ......
例) 危険なコーディング
1 char cStr[256];
2 ZeroMemory(cStr, sizeof(cStr));
3 &nb ......
oracle中pro*c的学习
一 Pro*C 程序概述:
1.什么是Pro*C程序
在ORACLE数据库管理和系统中, 有三种访问数据库的方法;
(1) 用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库;
(2) 用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*froms,QL*Reportwriter,SQL*Menu等;
(3) 利用在 ......
1) goto
goto 只能在一个函数内跳转。建议少用,使得程序维护起来容易出错;但是,在有多个循环情况下跳转,有时用goto可以使得问题变得简单。
class A
{
public:
A(){}
~A(){}
};
&nbs ......
把输入的一串字符转成数组,转成链表,然后删去其中指定的字符,在尾部添加一个字符。
(程序还不完善,没有对输错的情况进行处理,,暂时先这样吧。。= =。)
#include<stdio.h>
#include<malloc.h>
#define LEN sizeof(struct link)
struct link
{
char ch;
struct link *next;
}*string;
char a ......