Fitxers
Estructures
/*
st03.c
*/
#include <stdio.h>
struct treballador{
char nom[50];
char cognom1[30];
char cognom2[30];
int edat;
};
void vPresentaTreballador(struct treballador stT, const char *szQui){
printf("%s: %s %s %s te %d anys\n",szQui,stT.nom,stT.cognom1,stT.cognom2,stT.edat);
}
void vAugmentaUnAny(struct treballador *pStT){
(*pStT).edat += 1;
}
void vAugmentaUnAny2(struct treballador *pStT){
//(*pStT).edat += 1;
pStT->edat += 1;
}
int main(){
struct treballador *pT,enginyer, administratiu = {"Eric","Alvarez","Cuerva",18}, auxiliar;
vPresentaTreballador(administratiu,"Administratiu");
pT = &administratiu;
vPresentaTreballador(*pT,"Apuntador a administratiu");
vAugmentaUnAny(pT); //Pas per referència de l'estructura
vPresentaTreballador(*pT,"1) Apuntador a administratiu amb un any incrementat");
vAugmentaUnAny2(pT); //Pas per referència de l'estructura
vPresentaTreballador(*pT,"2) Apuntador a administratiu amb un any incrementat");
return 0;
}
Unions
/*
http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m7/d97m7p7.htm
*/
#include <stdio.h>
struct notes {
int mat, fis, inf,qui, fil ;
};
union alumne {
struct notes N;
int nota[5];
};
int main(){
int ct;
union alumne joan;
joan.N.mat=10;
joan.N.fis=9;
joan.N.inf=7;
joan.N.qui=9;
joan.N.fil=10;
printf("\nmat\tfis\tinf\tqui\tfil\n");
for(ct=0;ct<5;ct++){
printf("%d\t",joan.nota[ct]);
}
return 0;
}
Enumeració
/*
enum01.c
*/
#include <stdio.h>
enum dia {dilluns, dimarts, dimecres = 7, dijous, divendres, dissabte, diumenge};
int main(){
enum dia avui;
avui = divendres;
if (avui == divendres){
printf("És divendres\n");
}else{
printf("No és divendres\n");
}
printf("avui: %d\n",(int)avui);
avui = diumenge;
if (avui == divendres){
printf("És divendres\n");
}else{
printf("No és divendres\n");
}
return 0;
}