Lorsque je compile comme ça, le compilo ne cris pas, mais par
contre, il hurle
Lorsque je compile comme ça, le compilo ne cris pas, mais par
contre, il hurle
Lorsque je compile comme ça, le compilo ne cris pas, mais par
contre, il hurle
int (*fn)();
ceci est un pointeur sur une fonction qui prend aucun argument et renvoie un
ONE, double(ONE), "premier message",
pour info:
int double(int i)
{
return i * i;
}
int (*fn)();
ceci est un pointeur sur une fonction qui prend aucun argument et renvoie un
ONE, double(ONE), "premier message",
pour info:
int double(int i)
{
return i * i;
}
int (*fn)();
ceci est un pointeur sur une fonction qui prend aucun argument et renvoie un
ONE, double(ONE), "premier message",
pour info:
int double(int i)
{
return i * i;
}
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Lorsque je compile comme ça, le compilo ne cris pas, mais par
contre, il hurle si j'ai la déclaration suivante:
Complex table[] = {
ONE, double(ONE), "premier message",
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Lorsque je compile comme ça, le compilo ne cris pas, mais par
contre, il hurle si j'ai la déclaration suivante:
Complex table[] = {
ONE, double(ONE), "premier message",
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Lorsque je compile comme ça, le compilo ne cris pas, mais par
contre, il hurle si j'ai la déclaration suivante:
Complex table[] = {
ONE, double(ONE), "premier message",
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure de
données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure de
données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure de
données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure
de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce qui
reste à faire, c'est initiliser et utiliser les membres fn de vos
structures.
Le plus simple pour initialiser C.fn, c'est de lui affecter l'adresse
d'une fonction fonct. On peut pour cela utiliser indifféremment fonct ou
&fonct. Cette facilité - que je trouve regrettable, mais c'est un troll
- n'est pas unique dans le langage.
Un code de test pourrait être (OK, le style est à chier):
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
printf("%dt%dt%sn", table[0].value, table[0].fn(table[0].value),
table[0].mesg);
printf("%dt%dt%sn", table[1].value, table[1].fn(table[1].value),
table[1].mesg);
Comme plusieurs fois signalé, soyez prudent avec les nommages. double
doit être proscrit, et je n'aime pas trop Complex dans ce contexte.
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure
de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce qui
reste à faire, c'est initiliser et utiliser les membres fn de vos
structures.
Le plus simple pour initialiser C.fn, c'est de lui affecter l'adresse
d'une fonction fonct. On peut pour cela utiliser indifféremment fonct ou
&fonct. Cette facilité - que je trouve regrettable, mais c'est un troll
- n'est pas unique dans le langage.
Un code de test pourrait être (OK, le style est à chier):
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
printf("%dt%dt%sn", table[0].value, table[0].fn(table[0].value),
table[0].mesg);
printf("%dt%dt%sn", table[1].value, table[1].fn(table[1].value),
table[1].mesg);
Comme plusieurs fois signalé, soyez prudent avec les nommages. double
doit être proscrit, et je n'aime pas trop Complex dans ce contexte.
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure
de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce qui
reste à faire, c'est initiliser et utiliser les membres fn de vos
structures.
Le plus simple pour initialiser C.fn, c'est de lui affecter l'adresse
d'une fonction fonct. On peut pour cela utiliser indifféremment fonct ou
&fonct. Cette facilité - que je trouve regrettable, mais c'est un troll
- n'est pas unique dans le langage.
Un code de test pourrait être (OK, le style est à chier):
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
printf("%dt%dt%sn", table[0].value, table[0].fn(table[0].value),
table[0].mesg);
printf("%dt%dt%sn", table[1].value, table[1].fn(table[1].value),
table[1].mesg);
Comme plusieurs fois signalé, soyez prudent avec les nommages. double
doit être proscrit, et je n'aime pas trop Complex dans ce contexte.
"Pierre Maurette" writes:Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure
de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce qui
reste à faire, c'est initiliser et utiliser les membres fn de vos
structures.
Le plus simple pour initialiser C.fn, c'est de lui affecter l'adresse
d'une fonction fonct. On peut pour cela utiliser indifféremment fonct ou
&fonct. Cette facilité - que je trouve regrettable, mais c'est un troll
- n'est pas unique dans le langage.
Un code de test pourrait être (OK, le style est à chier):
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
printf("%dt%dt%sn", table[0].value, table[0].fn(table[0].value),
table[0].mesg);
printf("%dt%dt%sn", table[1].value, table[1].fn(table[1].value),
table[1].mesg);
Comme plusieurs fois signalé, soyez prudent avec les nommages. double
doit être proscrit, et je n'aime pas trop Complex dans ce contexte.
Ok je comprends mieux merci. Mais je voulais savoir si il n'y a pas
moyen de le faire plutôt pour une fonction quelconque de type void?
Je ne saisis pas bien. Vous avez certaines latitudes sur la concordance
"Pierre Maurette" <maurettepierre@wanadoo.fr> writes:
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure
de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce qui
reste à faire, c'est initiliser et utiliser les membres fn de vos
structures.
Le plus simple pour initialiser C.fn, c'est de lui affecter l'adresse
d'une fonction fonct. On peut pour cela utiliser indifféremment fonct ou
&fonct. Cette facilité - que je trouve regrettable, mais c'est un troll
- n'est pas unique dans le langage.
Un code de test pourrait être (OK, le style est à chier):
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
printf("%dt%dt%sn", table[0].value, table[0].fn(table[0].value),
table[0].mesg);
printf("%dt%dt%sn", table[1].value, table[1].fn(table[1].value),
table[1].mesg);
Comme plusieurs fois signalé, soyez prudent avec les nommages. double
doit être proscrit, et je n'aime pas trop Complex dans ce contexte.
Ok je comprends mieux merci. Mais je voulais savoir si il n'y a pas
moyen de le faire plutôt pour une fonction quelconque de type void?
Je ne saisis pas bien. Vous avez certaines latitudes sur la concordance
"Pierre Maurette" writes:Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure
de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce qui
reste à faire, c'est initiliser et utiliser les membres fn de vos
structures.
Le plus simple pour initialiser C.fn, c'est de lui affecter l'adresse
d'une fonction fonct. On peut pour cela utiliser indifféremment fonct ou
&fonct. Cette facilité - que je trouve regrettable, mais c'est un troll
- n'est pas unique dans le langage.
Un code de test pourrait être (OK, le style est à chier):
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
printf("%dt%dt%sn", table[0].value, table[0].fn(table[0].value),
table[0].mesg);
printf("%dt%dt%sn", table[1].value, table[1].fn(table[1].value),
table[1].mesg);
Comme plusieurs fois signalé, soyez prudent avec les nommages. double
doit être proscrit, et je n'aime pas trop Complex dans ce contexte.
Ok je comprends mieux merci. Mais je voulais savoir si il n'y a pas
moyen de le faire plutôt pour une fonction quelconque de type void?
Je ne saisis pas bien. Vous avez certaines latitudes sur la concordance
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure
de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce qui
reste à faire, c'est initiliser et utiliser les membres fn de vos
structures.
Le plus simple pour initialiser C.fn, c'est de lui affecter l'adresse
d'une fonction fonct. On peut pour cela utiliser indifféremment fonct ou
&fonct. Cette facilité - que je trouve regrettable, mais c'est un troll
- n'est pas unique dans le langage.
Un code de test pourrait être (OK, le style est à chier):
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
printf("%dt%dt%sn", table[0].value, table[0].fn(table[0].value),
table[0].mesg);
printf("%dt%dt%sn", table[1].value, table[1].fn(table[1].value),
table[1].mesg);
Comme plusieurs fois signalé, soyez prudent avec les nommages. double
doit être proscrit, et je n'aime pas trop Complex dans ce contexte.
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure
de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce qui
reste à faire, c'est initiliser et utiliser les membres fn de vos
structures.
Le plus simple pour initialiser C.fn, c'est de lui affecter l'adresse
d'une fonction fonct. On peut pour cela utiliser indifféremment fonct ou
&fonct. Cette facilité - que je trouve regrettable, mais c'est un troll
- n'est pas unique dans le langage.
Un code de test pourrait être (OK, le style est à chier):
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
printf("%dt%dt%sn", table[0].value, table[0].fn(table[0].value),
table[0].mesg);
printf("%dt%dt%sn", table[1].value, table[1].fn(table[1].value),
table[1].mesg);
Comme plusieurs fois signalé, soyez prudent avec les nommages. double
doit être proscrit, et je n'aime pas trop Complex dans ce contexte.
Bonjour,
y-a-t'il moyen en C, d'insérer une ou des fonctions dans une structure
de données?
typedef struct Complex Complex;
struct Complex {
int value;
int (*fn)();
char *mesg;
};
Oui, c'est possible, c'est même facile. Vous aviez bien commencé. Ce qui
reste à faire, c'est initiliser et utiliser les membres fn de vos
structures.
Le plus simple pour initialiser C.fn, c'est de lui affecter l'adresse
d'une fonction fonct. On peut pour cela utiliser indifféremment fonct ou
&fonct. Cette facilité - que je trouve regrettable, mais c'est un troll
- n'est pas unique dans le langage.
Un code de test pourrait être (OK, le style est à chier):
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
printf("%dt%dt%sn", table[0].value, table[0].fn(table[0].value),
table[0].mesg);
printf("%dt%dt%sn", table[1].value, table[1].fn(table[1].value),
table[1].mesg);
Comme plusieurs fois signalé, soyez prudent avec les nommages. double
doit être proscrit, et je n'aime pas trop Complex dans ce contexte.
Pierre Maurette wrote:
[...]
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
[...]
En passant, pour les pointeurs de fonction : quelle est la différence entre
"&fonction" et "fonction" ?. Un pointeur sur fonction peut être alloué avec
l'un ou l'autre, sans influence sur le résultat.
Si vous pouvez m'éclairer ...
Si "fonction" le nom d'une fonction - 'function designator' - , c'est
Pierre Maurette wrote:
[...]
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
[...]
En passant, pour les pointeurs de fonction : quelle est la différence entre
"&fonction" et "fonction" ?. Un pointeur sur fonction peut être alloué avec
l'un ou l'autre, sans influence sur le résultat.
Si vous pouvez m'éclairer ...
Si "fonction" le nom d'une fonction - 'function designator' - , c'est
Pierre Maurette wrote:
[...]
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
[...]
En passant, pour les pointeurs de fonction : quelle est la différence entre
"&fonction" et "fonction" ?. Un pointeur sur fonction peut être alloué avec
l'un ou l'autre, sans influence sur le résultat.
Si vous pouvez m'éclairer ...
Si "fonction" le nom d'une fonction - 'function designator' - , c'est
Pierre Maurette wrote:
[...]
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
[...]
En passant, pour les pointeurs de fonction : quelle est la différence entre
"&fonction" et "fonction" ?. Un pointeur sur fonction peut être alloué avec
l'un ou l'autre, sans influence sur le résultat.
Si vous pouvez m'éclairer ...
Si "fonction" est le nom d'une fonction - 'function designator' - ,
Pierre Maurette wrote:
[...]
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
[...]
En passant, pour les pointeurs de fonction : quelle est la différence entre
"&fonction" et "fonction" ?. Un pointeur sur fonction peut être alloué avec
l'un ou l'autre, sans influence sur le résultat.
Si vous pouvez m'éclairer ...
Si "fonction" est le nom d'une fonction - 'function designator' - ,
Pierre Maurette wrote:
[...]
int carre(int i) {return i * i;}
int cube(int i) {return i * i * i;}
enum {ONE = 10, TWO};
Complex table[] = {
ONE, &cube, "premier message",
TWO, &carre, "deuxième message",
};
[...]
En passant, pour les pointeurs de fonction : quelle est la différence entre
"&fonction" et "fonction" ?. Un pointeur sur fonction peut être alloué avec
l'un ou l'autre, sans influence sur le résultat.
Si vous pouvez m'éclairer ...
Si "fonction" est le nom d'une fonction - 'function designator' - ,
En passant, pour les pointeurs de fonction : quelle est la différence
entre "&fonction" et "fonction" ?
En passant, pour les pointeurs de fonction : quelle est la différence
entre "&fonction" et "fonction" ?
En passant, pour les pointeurs de fonction : quelle est la différence
entre "&fonction" et "fonction" ?