Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1234 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  C et C++ : y a un truc dont vous aimeriez parler ?

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

C et C++ : y a un truc dont vous aimeriez parler ?

n°626843
Taz
bisounours-codeur
Posté le 31-01-2004 à 11:11:01  profilanswer
 

pas des trucs du genre « je capte au rien pointeurs » quand même, mais si vous avez des petites idées dans la suite des petits papiers du C++. Allez ici, que ce soit en C (C99 :love:) ou C++
 [:taz]
 
 
À faire:
- streambuf: « ok, bah j'y réfléchirais, mais ça sera ètre progressif. je repartirais de la copie de fichier que j'ai montré y a quelques jours et je développerais un peu : on bricolera un petit istreambuf  sur le concept source-puit, genre un streambuf rot13 »


Message édité par Taz le 02-02-2004 à 15:55:40
mood
Publicité
Posté le 31-01-2004 à 11:11:01  profilanswer
 

n°626875
printf
Baston !
Posté le 31-01-2004 à 12:31:10  profilanswer
 

Drapeau :D


---------------
Un matin je me lèverai et il fera beau.
n°626884
enculemoi
Posté le 31-01-2004 à 12:42:37  profilanswer
 

c koi POSIX ?

n°626909
chrisbk
-
Posté le 31-01-2004 à 13:11:47  profilanswer
 

y'a moyen de connaitre l'offset d'une variable membre a compile-time ? (genre toto  de "this + toto" )


Message édité par chrisbk le 31-01-2004 à 13:12:14
n°626912
Taz
bisounours-codeur
Posté le 31-01-2004 à 13:14:35  profilanswer
 

alors en C++, ça pose des problèmes avec les fonctions membres en autre.
 
mais en C ou avec des banales structures, tu
 
offsetof dans <stddef.h> (c'est une macro triviale)
 
offsetof(struct meta_infos, author) qui retourne un size_t
je m'en suis servi dernièrement pour remplacer une longue série de  strcmp par un bsearch, ça marche très bien
 
 

Code :
  1. #include <cstddef>
  2. #include <iostream>
  3. struct Foo
  4. {
  5.   int i;
  6.   char s[5];
  7.   double d;
  8. };
  9. template<size_t OFFSET>
  10. inline void print()
  11. {
  12.   std::cout << OFFSET << '\n';
  13. }
  14. int main()
  15. {
  16.   print<offsetof(Foo, i)>();
  17.   print<offsetof(Foo, s)>();
  18.   print<offsetof(Foo, d)>();
  19.   Foo f;
  20.   * reinterpret_cast<int*>(&f + offsetof(Foo, i)) = 42;
  21.   std::cout << f.i << '\n';
  22. }


 
évidemment pour les fonctions, c'est interdit (mais supporté par certains compilateurs). -> pointeurs de fonctions membres, etc


Message édité par Taz le 31-01-2004 à 13:22:41
n°626930
verdoux
And I'm still waiting
Posté le 31-01-2004 à 14:03:08  profilanswer
 

les macros

n°626931
Taz
bisounours-codeur
Posté le 31-01-2004 à 14:06:17  profilanswer
 

les macros on ne s'en sert que lorsqu'on a pas le choix évidemment.
 
perso, les dernières que j'ai faite, c'était en C ANSI (bordel de compatibilité gcc-2.95) et elle visait 1 choses : remplacer l'absence de template. sinon ça m'arrive souvent de m'en servir pour réduire la longueur de noms de fonction quand je bosse avec l'API C de python, les expressions deviennent trop longues ... :D
 
y a pas grand chose à savoir, si ce n'est qu'il vaut mieux écrire
 
#define GO(X) do{ /* ... */  } while(0)
 
que
 
#define GO(X) { /* ... */ }


Message édité par Taz le 31-01-2004 à 14:10:41
n°627023
antsite
Je me souviens
Posté le 31-01-2004 à 17:25:12  profilanswer
 

les exceptions en c++, c'est beaucoup utilisé ?

n°627025
Taz
bisounours-codeur
Posté le 31-01-2004 à 17:26:03  profilanswer
 

par les bons programmeurs, oui

n°627045
R3g
fonctionnaire certifié ITIL
Posté le 31-01-2004 à 17:51:02  profilanswer
 

[citation=626912,1][nom]taz a écrit[/nom

Code :
  1. #include <cstddef>
  2. #include <iostream>
  3. template<size_t OFFSET>
  4. inline void print()
  5. {
  6.   std::cout << OFFSET << '\n';
  7. }


[/citation]Bon c'est peut-être con comme question, mais quel est exactement l'interet de faire ça sous forme de template plutot que d'une bête fonction ? C'est juste pour l'inlining ?

mood
Publicité
Posté le 31-01-2004 à 17:51:02  profilanswer
 

n°627100
antp
Super Administrateur
Champion des excuses bidons
Posté le 31-01-2004 à 18:30:12  profilanswer
 

taz a écrit :

par les bons programmeurs, oui


 
 [:grinking]  
 
les autres ils se contente de renvoyer des faux booléens valant TRUE, FALSE, ou 2 (déjà vu :D)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°627118
Taz
bisounours-codeur
Posté le 31-01-2004 à 18:47:41  profilanswer
 

R3g a écrit :

Bon c'est peut-être con comme question, mais quel est exactement l'interet de faire ça sous forme de template plutot que d'une bête fonction ? C'est juste pour l'inlining ?

ça prouve que c'est établie au moment de la compilation pour les sceptiques, mais bon, j'aurais pu faire une enum


Message édité par Taz le 31-01-2004 à 18:47:58
n°627572
Mr yvele
yvele n'est plus.
Posté le 01-02-2004 à 10:38:27  profilanswer
 

taz> t'as qua faire un joli topic cours sur les pointeurs [:dawa]
nan parce que c'est quand meme un probleme recurant
 
PS: si ce n'est pas déjà fait :o


Message édité par Mr yvele le 01-02-2004 à 10:38:45

---------------
yvele n'est plus.
n°627616
Taz
bisounours-codeur
Posté le 01-02-2004 à 12:10:12  profilanswer
 

taz a écrit :

« je capte au rien pointeurs » [:taz]

[:quoted]

n°627621
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-02-2004 à 12:17:58  profilanswer
 


 
T'utilises jamais le "quoted" comme nous [:figti]
 
nous on utilise ça pour souligner une connerie que quelqu'un dit, toi tu utilises ça pour mettre en évidence tes posts...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°627627
Taz
bisounours-codeur
Posté le 01-02-2004 à 12:23:29  profilanswer
 

j'appelle ça une « rétro-citation »
 
toi aussi, le jeune, tu peux l'utiliser pour mettre en évidence un message déjà posté :)

n°627667
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-02-2004 à 13:19:03  profilanswer
 

et puis d'ailleurs, estimez vous heureux que je ne réclame aucun droit à chaque fois que l'un d'entre vous utilise ce smiley :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°627668
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 01-02-2004 à 13:19:41  profilanswer
 

Mr yvele a écrit :

taz> t'as qua faire un joli topic cours sur les pointeurs [:dawa]


tu fais du C#, t'as pas besoin des pointeurs !


---------------
J'ai un string dans l'array (Paris Hilton)
n°627680
Taz
bisounours-codeur
Posté le 01-02-2004 à 13:39:06  profilanswer
 

Harkonnen a écrit :


tu fais du C#, t'as pas besoin des pointeurs !


#define unsafe warrior

n°627685
nraynaud
lol
Posté le 01-02-2004 à 13:47:06  profilanswer
 

Harkonnen a écrit :


tu fais du C#, t'as pas besoin des pointeurs !

t'as dû rater le topic sur les structures en C# toi.


---------------
trainoo.com, c'est fini
n°627702
Mr yvele
yvele n'est plus.
Posté le 01-02-2004 à 14:21:22  profilanswer
 

Harkonnen a écrit :


tu fais du C#, t'as pas besoin des pointeurs !


 
unsafe
{
  peut être hein, qui sait.. :D  
}


---------------
yvele n'est plus.
n°627703
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-02-2004 à 14:22:58  profilanswer
 

taz a écrit :


 
toi aussi, le jeune, tu peux l'utiliser pour mettre en évidence un message déjà posté :)


 
ce smiley n'a pas été prévu pour ça, et son look en caps est là en témoignage des quotes de smileys foireux d'Harko
donc ce smiley est à la base pour ridiculisé celui qui est quoté.
Enfin, tu peux te quoter si ça t'amuses :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°627719
Taz
bisounours-codeur
Posté le 01-02-2004 à 14:55:25  profilanswer
 

antp a écrit :


 
ce smiley n'a pas été prévu pour ça, et son look en caps est là en témoignage des quotes de smileys foireux d'Harko
donc ce smiley est à la base pour ridiculisé celui qui est quoté.
Enfin, tu peux te quoter si ça t'amuses :o

OK. j'ai le droit d'être ridicule. Je vais me cherche un  simley pour dire [:comme_dit_plus_haut]

n°628066
Taz
bisounours-codeur
Posté le 01-02-2004 à 22:29:49  profilanswer
 

pour ben j'ai pas de succès en fait.
y a pas beaucoup d'amateurs. la question de BlackGodess sur les friend template a fait un bide ...

n°628105
Evadream -​jbd-
Posté le 01-02-2004 à 23:25:07  profilanswer
 

J'en aurais bien des questions, mais elles sont encore bien vagues.  Notamment à propos des fonctions virtuelles et de leur surcoût à l'éxécution. En temps que débutant, j'ai pas mal d'à priori par rapport à l'emploi de fonctions virtuelles dans un programme qui nécessiterait les meilleurs performances possibles.
 
Dans quelle mesure ce surcoût devient non négligeable ? Y'a t'il des architectures (au sens organisation du code) à éviter absolument ?
 
Je "connais" en surface le fonctionnement des fonctions virtuelles (utilisation de la table des fonctions), mais je peux lire à droite à gauche que la surcharge est acceptable, mais pas pour certains types d'applications ayant des besoins important en performance.  
 
En fin de compte, dans quel mesure le polymorphisme est plus "efficace" qu'une logique avec des switch (je ne parle uniquement ici de l'aspect performance). En fin de compte, le seul désavantage serait que le compilateur ne puisse pas mettre en ligne les fonctions virtuelles.  
 
Quid de la situation ? :)


Message édité par Evadream -jbd- le 01-02-2004 à 23:31:32
n°628108
chrisbk
-
Posté le 01-02-2004 à 23:31:33  profilanswer
 

Evadream -jbd- a écrit :

J'en aurais bien des questions, mais elles sont encore bien vagues.  Notamment à propos des fonctions virtuelles et de leur surcoût à l'éxécution. En temps que débutant, j'ai pas mal d'à priori par rapport à l'emploi de fonctions virtuelles dans un programme qui nécessiterait les meilleurs performances possibles.


 
si il y a un surcout ca fait longtemps qu'il est tombé dans le domaine de l'oubli.

Citation :


 
En fin de compte, dans quel mesure le polymorphisme est plus "efficace" qu'une logique avec des switch (je ne parle uniquement ici de l'aspect performance). En fin de compte, le seul désavantage serait que le compilateur ne puisse pas mettre en ligne les fonctions virtuelles.  


 
je suis pret a parier que n'importe quel CPU prefere faire un appel indirect plutot que du defaut de prediction de branchement (surtout sur un gros switch de porc)


Message édité par chrisbk le 01-02-2004 à 23:32:26
n°628109
Evadream -​jbd-
Posté le 01-02-2004 à 23:32:10  profilanswer
 

chrisbk a écrit :


si il y a un surcout ca fait longtemps qu'il est tombé dans le domaine de l'oubli.  


 
[:ddr555] Ok :)

n°628110
nraynaud
lol
Posté le 01-02-2004 à 23:32:37  profilanswer
 

Evadream -jbd- a écrit :

Dans quelle mesure ce surcoût devient non négligeable ?

Je dirais que seul le profiler peut te le dire au cas-par-cas, car un bon paquet des appels retardés sont résolus à la compilation, pour des raisons diverses. prévoir à l'avance est quasi-impossible. Comme il est plus compliqué de les éliminer que de les rajouter, il vaut mieux développer correctement, profiler et limer dans les coins ce qui dépasse.


---------------
trainoo.com, c'est fini
n°628116
Evadream -​jbd-
Posté le 01-02-2004 à 23:40:46  profilanswer
 

Merci pour ces infos !

n°628117
Profil sup​primé
Posté le 01-02-2004 à 23:44:58  answer
 

Moi j'ai une question... est ce que Taz fait autre chose que de sortir "c'est de la merde", "c'est tres tres laid", "utilise Boost et laisse tomber le reste"... ainsi que de généralement mépriser les gens en se demandant après pourquoi il n'y à pas beaucoup de monde qui vient sur les topics [c/c++] ???
 
Sinon à part ca j'espère que tu es encore étudiant comme l'indique ton profil, comme ca tu as encore une chance de changer de comportement... sinon de droles de déconvenus vont te tomber dessus dans le futur.
 
Ah oui j'oubliais, fait attention tu forces trop sur la branlette de la norme "iso posix-gcc-2.23 bis repetita du template de la mort qui tue" et au final cela ne fait pas fonctionner un programme... d'ailleurs tu as déjà posté autre chose que 3 lignes de codes d'exemples convenus ?
 
Voilà c'était mon petit coup de gueule contre la mauvaise ambiance sur "programmation" et le c/c++ en particulier.

n°628126
Taz
bisounours-codeur
Posté le 01-02-2004 à 23:55:59  profilanswer
 

- je crois que la plus part des gens veulent du commentaire. alors je critique tant et plus. y a pas de mépris dedans. je parle du code, pas des gens.
- vas y apprends moi à vivre
- je crois pas qu'apprendre à respecter une norme et à l'exploiter soit mauvais. et ça permet au gens, surtout aux étudiants de ne pas hypothéquer leurs connaissances; et ça rends également service à celui qui étudie avec différents systèmes. Après je vois pas ce que tu me reproches: faire code élégant et qui tire partit au mieux d'un langage ? ben y a des gens qui ont envie de le comprendre. Si toi tu captes pas une ligne et que tu veux rester à ton C préhistorique, grand bien te fasse. Ne pers pas de vu que le code c'est une façon de s'exprimer. J'aime le code sémantiquement riche. Si toi t'aimes le B-A-BA, fais donc. Et oui, je fais des programmes plus gros que 3 lignes et je pense pas que mes exemples soient mauvais. Plus courts ils sont meilleurs ils sont. Et quand je donne un exemple, la vérité est que beaucoup de gens sont surpris par ça construction, ça leur permet de découvrir quelque chose, et de se familiariser avec des concepts.

n°628137
Profil sup​primé
Posté le 02-02-2004 à 00:13:32  answer
 

taz a écrit :

- je crois que la plus part des gens veulent du commentaire. alors je critique tant et plus. y a pas de mépris dedans. je parle du code, pas des gens.
- vas y apprends moi à vivre
- je crois pas qu'apprendre à respecter une norme et à l'exploiter soit mauvais. et ça permet au gens, surtout aux étudiants de ne pas hypothéquer leurs connaissances; et ça rends également service à celui qui étudie avec différents systèmes. Après je vois pas ce que tu me reproches: faire code élégant et qui tire partit au mieux d'un langage ? ben y a des gens qui ont envie de le comprendre. Si toi tu captes pas une ligne et que tu veux rester à ton C préhistorique, grand bien te fasse. Ne pers pas de vu que le code c'est une façon de s'exprimer. J'aime le code sémantiquement riche. Si toi t'aimes le B-A-BA, fais donc. Et oui, je fais des programmes plus gros que 3 lignes et je pense pas que mes exemples soient mauvais. Plus courts ils sont meilleurs ils sont. Et quand je donne un exemple, la vérité est que beaucoup de gens sont surpris par ça construction, ça leur permet de découvrir quelque chose, et de se familiariser avec des concepts.


 
Je vais pas perdre mon temps à te répondre parce que je n'en vois pas l'intêret vu ton attitude mais :
 
- Oui tu aurais besoin d'apprendre autre chose que le c++ dans la vie.
 
- Et merci tu viens de me donner un superbe exemple de ce que tu fais généralement dans tes posts quel que soit le sujet... sinon fait attention je crois que tu commences à te prendre pour dieu.
 
Voilà, bonne nuit.

n°628142
jagstang
Pa Capona ಠ_ಠ
Posté le 02-02-2004 à 00:17:42  profilanswer
 

pour résumer taz est un puriste borné (prend ça comme tu veux :))

n°628143
Taz
bisounours-codeur
Posté le 02-02-2004 à 00:18:29  profilanswer
 

- le fait est que je connais beaucoup d'autres choses. J'ai pas mal de connaissances en C et C++, je crois qu'il y quand même quelques personnes ici qui sont contentes de les partager.
- je me suis élevé, si l'enfant comprenait que l'étincelle est feu, il n'aurait plus jamais froid.

n°628145
Taz
bisounours-codeur
Posté le 02-02-2004 à 00:20:19  profilanswer
 

jagstang a écrit :

un puriste borné

justement non, les limites sont dans ta tête [:gnu]

n°628147
Jubijub
Parce que je le VD bien
Posté le 02-02-2004 à 00:24:01  profilanswer
 

le C++ sapu spa sécure... :o
 
(@modos : quitte à ce que le topic parte en vrille, autant s'amuser)


---------------
Jubi Photos : Flickr - 500px
n°628273
Joel F
Real men use unique_ptr
Posté le 02-02-2004 à 09:49:16  profilanswer
 

billyboy78 a écrit :


- Oui tu aurais besoin d'apprendre autre chose que le c++ dans la vie.


hanhan ... on est sur prog@hardware   ou sur psycho@feminin.com la ?
 

billyboy78 a écrit :


- Et merci tu viens de me donner un superbe exemple de ce que tu fais généralement dans tes posts quel que soit le sujet... sinon fait attention je crois que tu commences à te prendre pour dieu.


 
Si ca te plait, tu reponds pas. Point.
Quand je vois les ravages de cours de C ou de C++ fait comme des branles dans les universités et/ou ecoles divers, j'estime qu'un travail comme cleuid e taz est necessaire. Si tu avais un tant soit peu de recul tu comprendrais que les remarques acerbes de taz ne vise jamais la personne mais bon ...
 

n°628276
antp
Super Administrateur
Champion des excuses bidons
Posté le 02-02-2004 à 09:51:32  profilanswer
 

Joel F a écrit :

j'estime qu'un travail comme cleuid e taz est necessaire.  
 


 
En tout cas ça a rendu mon code C++ moins pire : je mets moins de C dans mon C++ [:ddr555]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°628281
Joel F
Real men use unique_ptr
Posté le 02-02-2004 à 09:54:22  profilanswer
 

antp a écrit :


En tout cas ça a rendu mon code C++ moins pire : je mets moins de C dans mon C++ [:ddr555]


 
antp l'a essayé t il l'a adopté  [:spyer]  
 
Si je pouvais geuler sur mes etudiants comme ca moi aussi ^^

n°628282
*syl*
--&gt; []
Posté le 02-02-2004 à 09:55:10  profilanswer
 

antp a écrit :


 
En tout cas ça a rendu mon code C++ moins pire : je mets moins de C dans mon C++ [:ddr555]

+1
Il m'a montré la voie, merci Taz :)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  C et C++ : y a un truc dont vous aimeriez parler ?

 

Sujets relatifs
Truc tout conTruc tout bête listes les fichiers d'un dossier
encore et encore du code pour la maitrise du trucAimeriez-vous que syl soit TT&Ban de cette section ?
Aimeriez-vous qu'os2 soit TT&Ban de cette section ?[ALGO] Un truc à Arbre
Mon hébergeur utilise PHPSuExec mais je ne comprend rien à ce truc.Access, besoin d'aide assez urgent, truc de base
Transformer [=?windows-1258?Q?S=E9bastien? =] en un truc francais[CSS] Heritage ou un truc dans le genre... :D
Plus de sujets relatifs à : C et C++ : y a un truc dont vous aimeriez parler ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR