C语言预编译出来命令
一、宏定义(不带参数的宏定义,带参数的宏定义)
1.编译预处理就是对C源程序进行编译前,由"编译预处理程序"对预处理命令行进行处理的过程。
2.C语言中,凡是以"#"开头的行,都称为"编译预处理"命令行。
C语言中的编译预处命令有:#define,#undef,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#line,#pragma,#error。这些预处理命令组成的预处理命令行必须在一行的开头以"#"号开始,每行的未尾不得加";"号,以区别于C语句、定义和说明语句。
3.不带参数的宏定义:命令的一般形式为:
#define 标识符 字符串
定义中的"标识符"为用户定义的标识符,称为宏名。在预编译时,C预编译程序将出现的宏名替换成"字符串"的内容,这一过程也称为宏展开。
4.带参数的宏定义:命令的一般形式为
#define宏名(形式参数) 字符串
定义中的"字符串"应包含括号中所指定的形式参数。注意宏名与括号之间不要加空格,否则就成为不带参数的宏定义了。
5.预编译时,遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换,原则是:
遇到实参则以实参代替,非形参字符原样保留,从而形成展开后的内容。
二、“文件包含”处理
1.文件包含的一般形式为:
#include"头文件名"#include<头文件名>
头文件名一般由C语言提供,也可以是用户自己编写的,头文件通常用.h作为后缀。
2.当头文件名用双引号括起来时,系统首先在使用此命令的文件所在的目录中查找被包含的文件,找不到时,再按系统指定的标准方式检索其它目录;当头文件名用尖括号括起来时,则直接按系统指定的标准检索方式查找被包含的文件。
3.预编译时,将被包含文件的内容全部复制到包含文件中,这就是文件"包含处理"。
三、条件编译
C语言中的条件编译命令可对源程序代码的各部分有选择地进行编译。条件编译主要有如下3种使用格式:
使用格式1:
#ifdef标识符
程序段1
#else
程序段2
#endif
使用格式2:
#ifndef标识符
程序段1
#else
程序段2
#endif
使用格式3:
#if表达式
程序段1
#else
程序段2
#endif
使用格式1表示如果已定义了“标识符”,则编译“程序段1”,否则编译“程序段2”;使用格式2表示如没有定义了“标识符”,则编译“程序段1”,否则编译“程序段2”;使用格式3表示如“表达式”的值为“真”时,则编译“程序段1”,否则编译“程序段2”。
相关文档:
http://en.wikipedia.org/wiki/C_preprocessor
C preprocessor
from Wikipedia, the free encyclopedia
Jump to:navigation, search
The C preprocessor (cpp) is the preprocessor for the C programming language. In many C implementations, it is a separate program invoked by the compiler as the first part ......
#include<stdio.h>
#define N 8
void input(int n,int p[N][N])
{
int i,j;
for(i=0;i<n;i++)
{
printf("please input the %d line:\n",i+1);
for(j=0;j<n;j++)
{
scanf("%d",&p[i][j]);
}
}
}
void output(int n,int p[N][N])
......
例) 危険なコーディング
1 char cStr[256];
2 ZeroMemory(cStr, sizeof(cStr));
3 &nb ......
C/C++ Reference
http://www.cppreference.com/
C++ Library Reference
http://www.cplusplus.com/ref/
Standard C++ Library Class Reference at Rogue Wave
http://www.roguewave.com/support/docs/hppdocs/stdref/
Dink ......
oracle中pro*c的学习
一 Pro*C 程序概述:
1.什么是Pro*C程序
在ORACLE数据库管理和系统中, 有三种访问数据库的方法;
(1) 用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库;
(2) 用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*froms,QL*Reportwriter,SQL*Menu等;
(3) 利用在 ......