Contenu connexe
Plus de Dimitris Psounis (20)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ (ΕΚΤΥΠΩΣΗ)
- 1. H C
14:
.
1.
1.
2.
3. -
2.
1.
2. -
. ! "# $ .
1. % $ # $
2. # , &
3. (extern)
4.
'. (
.
1.
! " # ! " # # $ $ 3 $ $
! " :
% & & ! ' ! ! main
% ! & ! ' $ $' $ .
% - $ $ $' $ ! ' " ( ' .
' :
) $' * $ ' ! $ ! ' ! $ ! " .
« ! » $' $ ! ' + ' .
$ & ! & $ ( '
$ ' # .
! $ & ! & ! " $ & $ ! ' C
.
#$ : ' , & ! & , $ " '! ,
& & ! $ ! ' ( ' ( & $ .
!
.
1.
1. , &
& & + ! ! main & (! $ $ ) ! &
$' $ ' ! " .
- & & ' & $ ' ' ! $ $
$' $
- +# # & & ! & $ '
! " & & $ ' main.
#$ +# ( $ $ & & $ '
! " ! ' $
. $ ! ' $ & & , ! $
& # & $ ' ! " .
$ :
• / $ & & $' " $ " & & " ’ ' &
! ( " !
- 2. .
1.
1. , &
$ ! ! # & & x ! $ $ ! $' $
' ! & # ! " :
"
/* global.c: Deixnei tin xrisi twn katholikwn metavlitwn */
#include <stdio.h>
int x; /* Katholiki metavliti */
void func();
main()
{
x=5;
printf("nMain: x=%d",x);
func();
printf("nMain: x=%d",x);
}
void func()
{
printf("nFunc: x=%d",x);
x=8;
printf("nFunc: x=%d",x);
}
.
1.
2. % ! &
( #$ " ! : 0, ( ' " $' $ $ & " main, (
& ' $' $ )
! & + $ $' $
1' + ' ! & ! $' $
! ' + .
- +# # ! & ! & $ & $
$' $ & & $ ' $' $ .
% + ' ! ' $ ! & $ & & $
$' $ , & $ ( & 2 & ! $ ! & $ $' $ .
#
.
1.
2. % ! &
' $ ! ! #$ $ "& '$ # & & ! &
( $ ' & & & ! & , ! & $
! & .
. $ & ' ! " '! $ ! & ( . 5)
$
/* local.c: Deixnei tin antimetwpisi sigkrousis onomatwn metavlitwn */
#include <stdio.h>
int x; /* Katholiki Metavliti */
void func();
main()
{
x=1;
func();
}
void func()
{
int x=5; /* Topiki Metavliti */
printf("nLocal: x=%d",x);
}
.
1.
3. – - $
! ' # $ $ $' $ & $' ! (
! & # $' $ # .
3 ! $' $ ! ' # $ .
- +# ' $ & $ & $ $' $ .
! ! #$ ! ' ' $ "& '$ - $ & &
! & - $ .
! ! #$ ! ' ' $ "& '$ - $ ! & ,
' " # $ .
%
$ :
• & " & & ! " $ ' $'"& $ # . $ $
! ! " # + ' ! ! & $ ! ! #$ ! ' ' $ "& '$ .
- 3. .
2. 2 & ' % !
1. & % ! &
& ! 2 & ' ( " , ' & ( ! ' $' $
& $ ( $'"& & ! & , &
! ( ! ' & ' & $ $' $ .
/ C ' '& , 2 & static ! !
#$ , !. .:
' ! $ & ! & ! & ! ' & $ (
& & $ $' $ , " ! ( ! '
" & $ $' $ .
$ & ! & ! ! ! & & ! $ & #$
! ' & $ ! ( ! ' & $ $' $ .
&
static int m;
.
2. 2 & ' % !
1. & % ! &
& $ & $ & ' ! " ! ' ( $' $
! & $ $' $ $ $ $ $ & ! & .
'
/* static.c: Deixnei tin xrisi twn statikwn metavlitwn */
#include <stdio.h>
void func();
main()
{
int i;
for (i=0; i<10; i++)
func();
}
void func()
{
int y=0;
static int x=0;
x=x+1;
y=y+1;
printf("nx=%d, y=%d", x,y);
}
.
2. 2 & ' % !
2. – , #
- & # ! & '$ CPU
" $ ! ( 2 ! ! 2 " $ ! $ )
% & & $ & ' ! " " ! $ $ $ $ $
' '! " $ .
. $ $ & ! 2 & ' ( " , ! ' $ & ! ! '
$' ! $ $ , ' # $ & # ! $ &
2 -& register $ #$ .
. .: " & :
, ! $ ! & & $ ! " , !# $ !
! ! & .
#$ : + $ ! & # " m.
'! $ & # $ " & $ ,
$' & .
#$ :
• + $ ! & # " m. '!
$ & # $ " & $ , $'
& .
register int m;
4. " $ ! , &
1. $! $ ' " $
" ! " # & ! " $ & ! & & " ( ' & &
' ! " $ ( & .
% $' $ & ! ' $ ! + $' $ ! ' & '
$' ( ' .
. . ! $ & & " * ' $' $ ! ' +
# ! ' ' $ & $ ' $' $
main .
& ! ! # :
! $ ' & & $' $ # , ! !
$# ' $ ! " .
- 4. 4. " $ ! , &
1. $! $ ' " $
- + ' ! # '! # $' $ # $ lib_array.h:
#$ : ! ' $ $ ' & , $ #
!
!
/* lib_array.h: Prwtotipa sinartisewn */
void init_array(int *pinakas, int n, int a, int b);
void print_array(int *pinakas, int n);
int sum_array(int *pinakas, int n);
4. " $ ! , &
1. $! $ ' " $
- & & # $' $ # " ( $ «lib_array.c»
($' + & )
/* lib_array.c: Kwdikas twn sinartisewn */
#include <stdio.h>
#include <stdlib.h>
#include "lib_array.h"
void init_array(int *pinakas, int n, int a, int b)
{
int i;
srand(time(NULL));
for (i=0; i<n; i++)
pinakas[i]=a+rand()%(b-a+1);
}
void print_array(int *pinakas, int n)
{
4. " $ ! , &
1. $! $ ' " $
T main & include «.h» & $# $' $ ! '
! $ ' .
"
#include <stdio.h>
#include <stdlib.h>
#include "lib_array.h"
#define N 50
main()
{
int pin[N];
init_array(pin,N,1,100);
print_array(pin,N);
printf("nnTo athroisma einai: %dnn", sum_array(pin,N));
}
4. " $ ! , &
2. " $ , $ & & $
" ! ' ! ! & ' $ DEV-C++ " ' " ' &
& $ ' ':
! " ' File->New Project
! ' ( + :
& " ' project, ! " ' C Project & ! " '
& Empty Project. -,
#
- 5. 4. " $ ! , &
2. " $ , $ & & $
" ' ( & ! ' ! & $ ' ! " :
, ! -,
$
4. " $ ! , &
2. " $ , $ & & $
, ' 2 & & $ ' project:
, ! " ' add to project. & ! " ' ! ' ' $# $ ' $
project ( ' ! ' ' " * )
%
4. " $ ! , &
2. " $ , $ & & $
/ & ' DEV-C++ ! ! 2 .
0! ' ! ! 2 ' & ! 2 " $ $ & & . + '
& ' ! Rebuild All
&
4. " $ ! , &
2. " $ , $ & & $
! ! & ' ' " $ & $ $ # # & &
& ! & $ ! ' ! 2 ' & ' ! Run.
& ! $ ( & ! ' , ! & & &
! ' $ $ & & & (! & $ ' . )
! 2 " $ ' & & ! $ & &
& & & $ '.
'
- 6. 4. " $ ! , &
2. " $ , $ & & $
$ ' & & (!. $ ! ' ! main). %
' ) ! $ $ ! & & .
' ! $ $ & $ , ! ! $ '
$ ' & 2 & extern ! $ !
#$ .
! ' & & , # 2# & & &
$ '! ! .
! " " $ # 2# & .
int x;
extern int x;
4. " $ ! , &
2. " $ , $ & & $
0!# ( $ & & & & ! & $ extern_main.c
& ! # 2# & & & $ extern_lib.c
/* extern_main.c */
#include <stdio.h>
#include "extern_lib.h"
int x=4;
main()
{
printf("nMAIN: %d",x);
func();
}
/* extern_lib.c */
#include "extern_lib.h"
extern int x;
void func()
{
printf("nFUNC: %d",x);
}
/* extern_lib.h */
void func();
4. " $ ! , &
2. " $ , $ & & $
.$ # & & $ $ & & .
' ' ! $'"& & &
! " $ ' $ ! , " ( ' ! $ ! #$ ,
2 -& static:
! ' $'"& & & & , ! $ ! !
, & & $ $ 2# & .
!
static int x;
. $& $
1. $ & , $ #
5 $ ! $ $ & ! & " $ ! # &
& $ # ! ' " $ ! " '! " $ # Fibonacci ! '
' " $ $ « 6 – ' $ & .
- 7. . $& $
2. ! $ $ #
"
" $ ! ' ! & $ ! , $! $ ! " « 13:
– ( " 6», $ $' $ & #$ ! " ! $
2 # $ & .