1

yop,


Je voudrais faire un template en C.
Faire un header où je définis une structure, par exemple

#ifndef STRUCT_TYPE_H
#define STRUCT_TYPE_H

typedef struct
{
    TYPE a;
} STRUCT_TYPE;

#endif

Pour ça, j'aurais besoin de pouvoir concaténer "STRUCT_", "TYPE", et "_H".
C'est faisable en C ?

2

Je ne suis pas sûr de comprendre ce que tu veux faire, mais tu peux faire de la concaténation en utilisant "##"
Exemple :

#define truc (arg) bla_##arg

->

truc(BLA) retournera bla_BLA

Tu peux même utiliser ça de façon plus puissante pour créer des fonctions avec des macros dont les noms et paramètres, voire même certaines de leurs lignes de code sont passées en argument de la macro. Peut-être est-ce ce que tu veux faire d'ailleurs.

edit : plus d'exemples : http://www.google.com/codesearch?hl=fr&sa=N&q=%23%23++lang:c&ct=rr&cs_r=lang:c
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

3

oh yeah c'est ça, merci ! smile

4

Plus j'essaye de faire du C, plus je trouve ça bordélique, mal branlé, compliqué de faire des choses simples, pas puissant et tout ce qu'on veut.
En fait, je trouve que c'est bon pour faire de l'assembleur rapidement mais sans performance, mais que ça n'apporte pas grand chose conceptuellement parlant.
Après, je suis pas un expert, ya peut-être moyen de faire des choses très puissantes. Mais à mon niveau, c'est bien la merde. Le pire est de pas pouvoir écrire ses idées à cause d'une syntaxe merdique alors qu'on voit parfaitement le code qu'on veut faire générer.

5

Si tu le dis grin Mais juste là comme ça, je ne vois pas trop de quoi tu veux parler, et personnellement à deux-trois détails près il n'y a pas grand chose qui me dérange dans ce langage.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

6

Ce qu’il te faut c’est du Java alors smile
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

7

8

Oué à propos si tu me donnais un petit brun d'explication pour les fonctions que tu veux que j'implémente, ça m'aiderait grin

9

bin pour le moment je devrais pas en avoir besoin grin

je te recontacterai quand je passerai au port 68k grin

(déja faudrait qu'hello world fonctionne sur pc grin)

10

Edited_968

11

Remet ça dans l'époque de la création du C, le C est bel et bien une syntaxe d'assembleur plus portable que l'assembleur, et permet de définir plus facilement des structures qu'en assembleur. C'est une légère abstraction sur la machine, et une fois que tu en maîtrise la syntaxe, c'est quand même sacrément utile...

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

12

Ah je dis pas, une fois que tu maitrises, c'est pour ça que je disais "à mon niveau". Quand tu passes les 3/4 du temps dans la doc à ne pas trouver comment écrire un truc simple parce que la syntaxe n'est pas facile, c'est gavant à la fin. J'aimerais bien avancer plutôt que de passer mon temps à lire des sources et mes bouquins...

13

Tu dis : "ça n'apporte pas grand chose conceptuellement parlant", ça dépend de ce que tu entends par "concept". Dans le sens habituel quand on parle de langage, le C par rapport à l'assembleur apporte au contraire énormément de concepts (le concept de structures, le concept de fonctions, le concept de pointeurs, etc.).

Si en revanche tu voulais dire "ça ne permet de faire rien de plus qu'en assembleur", c'est vrai, et ça l'est pour tous les langages. Le seul endroit où tu y gagnes c'est en concision. Ça n'est peut-être pas évident pour l'instant parce-que tu travailles sur des petits projets qui pourraient tout à fait être codés intégralement en assembleur. Mais imagine une seconde des projets de plusieurs centaines de milliers de lignes de code C, C++, Java ou que sais-je ; c'est déjà bien assez difficile à avoir en tête comme ça, sans s'amuser à multiplier encore par 10 (ou pire) si on passait en assembleur.

Comme dit Orion_, c'est peut-être parceque tu as encore beaucoup plus l'habitude de l'assembleur et que c'est une façon de penser qui te semble plus naturelle. Mais je t'assure qu'avec un peu de temps, on arrive très bien à penser directement en C ou en Java, et à gagner un temps considérable.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

14

iwannabeamaki (./13) :
le C par rapport à l'assembleur apporte au contraire énormément de concepts (le concept de structures, le concept de fonctions, le concept de pointeurs, etc.).
(détail au passage : les assembleurs dignes de ce nom supportent tous ces concepts aussi hehe)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

15

Oui pardon, "assembleur" est à comprendre au sens "assembleur 68k avec les outils disponibles pour Ti" ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

16

(et pour la petite histoire, je ne sais pas si la plupart des codeurs C utilisent ou même connaissent le ##, tu fais presque partie de l'élite maintenant grin)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

17

iwannabeamaki (./13) :
Tu dis : "ça n'apporte pas grand chose conceptuellement parlant", ça dépend de ce que tu entends par "concept". Dans le sens habituel quand on parle de langage, le C par rapport à l'assembleur apporte au contraire énormément de concepts (le concept de structures, le concept de fonctions, le concept de pointeurs, etc.).

Ben les structures, j'ai pas eu besoin du C pour en utiliser en asm. C'est quoi, c'est souvent une table d'equate et un stack frame. J'étais content de le retrouver en C ceci dit.
Les pointeurs, ben je vois pas où est la nouveauté quand tu sors de l'assembleur en fait. Ya qu'à voir sur le site du zéro, donc la première moitié du cours sur les pointeurs ne sont que hurlement de panique et de terreur destinés à faire croire que les pointeurs sont des machins abhorrifreux qui vont te manger tout cru.
Alors qu'en fait, tu pourrais pas écrire trois lignes d'assembleur sans adresse. Donc non, ce n'est pas une nouveauté du C ^^

Quant aux fonctions, elles représentent en C un concept limitatif par rapport à l'assembleur, en ce sens qu'elles sont quand même bien réelles en asm (c'est juste à toi de le conceptualiser, mais c'est très naturel), et qu'en tout cas elles sont beaucoup plus maniables.

Alors à moins que les assembleurs aient été beaucoup moins évolués que le 68k à l'époque de la sortie du C, je ne vois pas encore ce que le C apporte comme concept. Encore une fois, je ne le vois pas à mon niveau.


(anecdote, faut croire que les pointeurs font paniquer, GUNNM m'a déjà dit que je faisais "du C de haut vol" parce que j'utilisais des pointeurs #triclasse#)
iwannabeamaki (./13) :
Si en revanche tu voulais dire "ça ne permet de faire rien de plus qu'en assembleur", c'est vrai, et ça l'est pour tous les langages.

© la Palisse grin
iwannabeamaki (./13) :
Mais imagine une seconde des projets de plusieurs centaines de milliers de lignes de code C, C++, Java

Ca va, j'imagine même pas. Oué ok pour des "vrais" projets, ou en tout cas gros voire énorme c'est même pas la peine.
iwannabeamaki (./13) :
Comme dit Orion_, c'est peut-être parceque tu as encore beaucoup plus l'habitude de l'assembleur et que c'est une façon de penser qui te semble plus naturelle. Mais je t'assure qu'avec un peu de temps, on arrive très bien à penser directement en C ou en Java

Je te crois, même si j'arrive pas du tout à me représenter ce que ça peut donner.

Je crois que je m'emmerde, parce que je ne sais pas mettre en oeuvre en C la moitié de ce que j'essaye de faire. Je choisis jamais le moyen adapté à mes connaissances.
Ximoon (./16) :
(et pour la petite histoire, je ne sais pas si la plupart des codeurs C utilisent ou même connaissent le ##, tu fais presque partie de l'élite maintenant biggrin.gif )

Tu sais que je me sens toujours aussi nul même après avoir lu ça gni

18

Folco (./17) :
Ben les structures, j'ai pas eu besoin du C pour en utiliser en asm. [...] Quant aux fonctions [...] c'est juste à toi de le conceptualiser, mais c'est très naturel

Oui, en gros t'es en train de dire que tu as recréé ces concepts en ASM grin

C'est comme mon histoire de "Object* o = objectCreate ();", "objectDoSomething (o, 1, 2);" et "objectDelete (o);" l'autre jour : pas besoin d'inventer un nouveau langage pour simuler une façon particulière de coder. En revanche un langage peut t'apporter un cadre strict prévu pour te guider dans leur utilisation, et c'est ce que fait le C avec certaines des habitudes que tu as prises en ASM.
Je crois que je m'emmerde, parce que je ne sais pas mettre en oeuvre en C la moitié de ce que j'essaye de faire. Je choisis jamais le moyen adapté à mes connaissances.

Peut-être juste parceque tu veux mettre la charrue avant les bœufs ? Laisse-toi au moins le temps d'avoir fait 3 ou 4 programmes "simples" sans chercher immédiatement à t'attaquer à un truc trop gros, ça sera quand même plus souple comme transition smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

19

Edited_969

20

Orion_ (./19) :
l'intérêt du C c'est de coder facilement sans ce prendre trop la tête mod.gif
Euuuh, dans le genre "non prise de tête", c'est pas le C que je citerais comme exemple grin (plutôt le VB, ou le VB.NET/C# pour ceux qui aiment les langages managés)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

21

Orion_ (./19) :
on s'en fou des concepts, l'intérêt du C c'est de coder facilement sans ce prendre trop la tête cheeky

J'ai pas encore trouvé de langage où je code sans me prendre la tête. grin

22

Va falloir inventer le Folco.NET hehe
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

23

Chiche
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

24

Parle pour toi cheeky

25

Zerosquare (./22) :
Va falloir inventer le Folco.NET hehe
Tu veux dire, un assembleur 68k (le langage) qui se compile en MSIL avec une librairie d'exécution qui fait office de machine virtuelle ? cheeky
Ça pourrait être marrant à faire…
D'ailleurs Folco, tu devrais essayer de coder en MSIL, ça se trouve ça te plairait. C'est de l'assembleur (enfin un genre de bytecode, mais c'est quasiment pareil tongue) avec des objets, des fonctions et de la gestion d'erreurs. grin
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

26

Ah pas mal Golden hehe

27

y'a le bytecode java aussi #mapropreparoisse#