#define .
:
#define REAL long double
REAL long double. long double, :
REAL x, array [6];
.
#define , , .
:
#define PN printf ("\n =%d", N);
int N=4;
PN;
=4
.
++ , :
,
.
, , - , , .
:
#define N 4 //
#define M 5 //
#define A(i,j) x[M*(i-l) + (j-1)]
#include <stdio.h>
void main ()
{
/* */
double x[N*M];
int i, j, k;
for (k=0; k < N*M; k++) x[k]=k;
/* */
for (i=1; i<=N; i++) {
printf ("\n %d:", i);
for (j=1; j<=M; j++) printf(" %6.1f", A(i, j)); //
}
}
:
1: 0.0 1.0 2.0 3.0 4.0
2: 5.0 6.0 7.0 8.0 9.0
3: 10.0 11.0 12.0 13.0 14.0
4: 15.0 16.0 17.0 18.0 19.0
, N× (N , M - ). #define. () x[] N*M. , . k.
1.11 [ ] .
1.11 .
A(i, j). i 1 N, j 1 . A(i,j) , 1.
|
|
A(i, j) x[5*(i-l)+(j-l)]. [ ], .. , .
printf (% 6.1f, A (i, j));
:
printf (% 6.1f, x[5*(i-l)+(j-l)]);
:
A (1,1) x[0] - x[5(1-1)+(1-1)]
A (1,2) x[1] x[5(1-1)+(2-1)]
A (2,1) x[5] x[5(2-1)+(1-1)]
A (3,4) x[13] x[5(3-1)+(1-1)]
, C++ . const enum, .
#undef #define.
:
#undef
, #define, , .
:
M
#define M 16
#undef M
#define ђ
#undef M
#define M є
( #undef).
#undef , , - . , , , .. . , #define, #undef .
:
= 10; //
#define A X
= 5; //
#undef A
= ; //
10, = 5; .
#include , , .
:
#include <_>
#include _
, , , #define, <_> .
. .h, (header file). :
, , , , ;
, , , ;
;
;
.
. , .
|
|
, , . , stdio.h / printf, scanf . .
, ( ). . , stdio.h
#include < stdio.h >.
. #include ( ).
. ++:
float.h -
limits.h -
math.h -
stdio.h - -
string.h -
time.h -
. , MS-DOS mem.h, alloc.h, conio.h, dos.h, graphics.h .
<name.h> C++ <cname>, std. , #include <cstdio> , #include <stdio.h>, std.
. ( ). , .
, . , , , , . , #include , .
extern. :
extern int ii, jj, ll; //
extern float aa, bb; //
, ( , ). , , .
#if, #ifdef, #ifndef, #else, #endif, #elif. ( ) , . , , , .
#if, #ifdef, #ifndef .
:
#if | #ifdef | #ifndef
_1
[#else
_2]
#endif
#endif #if, #ifdef #ifndef.
|
|
_1 . #else . , #else _2, #if #endif .
#if, #ifdef #ifndef . #if -, #ifdef - , #ifndef - .
#if
#if
. , , . , .
:
:
#if 5+4
_1
#endif
_1 .
, .
:
#if 0
int i, j;
double x, y;
#endif
#ifdef
#ifdef
, , .. #define.
#ifndef
#ifndef
, , .. #define #undef.
, , #define:
#define
.
#ifdef .
:
DEBUG
#define DEBUG
#ifdef DEBUG
printf ( );
#endif
printf ( ); , .. DEBUG . , #define DEBUG, .
#ifndef , , #include. , , , , . , . .
:
#ifndef _FILE_NAME // _FILE_NAME
#include "filename.h" // filename.h
#define _FILE_NAME // _FILE_NAME
#endif
_FILE_NAME - filename . .
#elif #else - #if. .
#elif
, #if.
:
#if _0
_1
#elif _1
_2
|
|
#elif _2
_3
#else
___lse
#endif
#elif .
_0 #if. 0, _1f, 0, _1. _1 0 _2, 0, _2 .. 0, __else.
(#if #elif) , , . , , . , , .
:
#if VERSION == 1
#define INCFILE "versl.h"
#elif VERSION ==2
#define INCFILE "vers2.h"
#else
#define INCFILE "vers3.h"
#endif
#include INCFILE
.
defined
#if #elif defined. :
defined
, . 1, ( #define), - 0.
#if defined
#ifdef
defined . defined.
:
#if defined Y &&!defined N
#endif
, Y , N .
. , defined Y !defined N. &&, .
defined, :
#ifdef Y
#ifndef N
#endif
#endif
, ,
#if defined #ifdef
#if!defined #ifndef
++ defined . . defined , #if #elif. defined #define #undef.
, .
#line , .
:
_ _: ___++
#line :
#line _ [_]
.
: "www.c" :
#define N 3 // 1
void main () // 2
{ // 3
#line 23 "file." // 4
double z[3*N]; // 5
} // 6
"www.i" :
www.c 1:
www.c 2: void main ()
www.c 3: {
www.c 4:
file.c 23: double z[3*3]
file.c 24: }
. , (1 4), , . #line 23 "file.c" . .
#line , ++ - .
#error , .
:
#error _
, . . #error .
|
|
:
NAME
#define NAME 5
, , :
#if (NAME!= 5)
#error NAME 5
(, Turbo ) :
Fatal <_> <_>:
Error directive: NAME 5
, , #if.
#pragma , .
#pragma _
. . , , .
#pragma pack(n)
n 1, 2 4.
. :
pack(l) - ;
k(2) - ;
k(4) - .
, , , ..
, ( ). : #.
2