• STATISTIQUES
  • Il y a eu un total de 0 membres et 30212 visiteurs sur le site dans les dernières 24h pour un total de 30 212 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] PHP France
    Pour tout savoir sur le PHP, en français. Vous trouverez des tutoriels, des exemples, des astuces, toute la do...
    Hacking
    [FR] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges
    [EN] phrack
    Lot's of stuff !
    Hacking
    [FR] Microcontest
    Cryptographie: 7, Mathématiques: 8, Image Son Vidéo: 5, Intelligence artificielle: 3, Réseau: 2, Divers: 7, Phy...
    Challenges
    [EN] w3challs
    Ce site propose différents types de défis informatiques: piratage, craquage, cryptographie, stég...
    Hacking
    [EN] Big-Daddy
    Big-Daddy est site internet communautaire avec un effectif diversifié, y compris des artistes, des programmeur...
    Hacking
    [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[C TOTW 3] #warning, #error
08-09-2014, 11h03 (Modification du message : 15-09-2014, 13h42 par ark.)
Message : #1
ark Hors ligne
Psyckomodo!
*****



Messages : 1,033
Sujets : 48
Points: 317
Inscription : Sep 2011
[C TOTW 3] #warning, #error
Hello !! :)

3 eme semaine, nouveau tip of the week ! C'est cool, j'apprends plein de trucs a vous en chercher !

Bref, trêves de bavardages, passons dans le vif du sujet! Il s'agit pour cette fois de deux directives de préprocesseur plutôt méconnues: #error et #warning

Alors, a quoi ca sert et comment ca s'utilise?

Simplement, ca sert a faire peter une erreur de compilation, ou un warning de votre propre invention.
Et au niveau de l'utilisation, voyons l'exemple ci-dessous :

Code C :

#include <stdio.h>

int main(void) {

#ifndef COMPILE_OK
#error "This won't compile!"
#else
  printf("Ce code marche nickel !\n");
#endif

#ifdef WARN
#warning "Hey, wait, this is a WARNING FOR YOU !"
#endif

  return 0;
}
 


On va maintenant essayer de compiler de manière très classique:
Code BASH :

$> gcc file.c
file.c: In function ‘main’:
file.c:6:2: error: #error "This won't compile!"
 #error "This won't compile!"
  ^
$>
 


On obtiendra donc cette erreur de compilation.
En revanche, si pour le coup on compile en spécifiant le flag qui va bien, tout se passe correctement.

Code BASH :

$>  gcc file.c -DCOMPILE_OK
$> ./a.out
Ce code marche nickel !
$>
 


Ensuite, on va pouvoir compiler avec le flag WARN pour voir le message de warning :
Code BASH :

$> gcc file.c -DWARN
file.c: In function ‘main’:
file.c:6:2: error: #error "This won't compile!"
 #error "This won't compile!"
  ^
file.c:12:2: warning: #warning "Hey, wait, this is a WARNING FOR YOU !" [-Wcpp]
 #warning "Hey, wait, this is a WARNING FOR YOU !"
  ^
$>
 


Voili voilou !
Je pense qu'un exemple d'utilisation peut etre dans le cas de dependances avec d'autre morceaux de code.
+1 (10) -1 (0) Répondre
10-09-2014, 11h49 (Modification du message : 10-09-2014, 11h49 par ark.)
Message : #2
ark Hors ligne
Psyckomodo!
*****



Messages : 1,033
Sujets : 48
Points: 317
Inscription : Sep 2011
RE: [C] tip of the week 3
Du coup, j’étais entrain d’écrire un petit tool, et je me suis dis que ça pourrais être intéressant de réutiliser ce concept, donc voila un petit bout de code qui utilises le #warning d'une manière plus ou moins utile :) (même si ça reste basique)

Code C :

#ifndef __MAX_THREADS
# define __MAX_THREADS 8
# else
#  if __MAX_THREADS > 8
#   warning "make sure your CPU can efficiently handle that much threads"
#  endif
#endif
 
+1 (3) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [C TOTW 6] Xor tricks ark 7 480 06-03-2016, 23h36
Dernier message: Commodor
  [C TOTW 2] Parcours de tableau ark 5 367 29-09-2014, 17h44
Dernier message: crown
  [C TOTW 5] bitfields ! ark 4 271 23-09-2014, 11h17
Dernier message: Aniem
  [C TOTW 4] Equivalent de try / catch / throw en C ark 0 133 15-09-2014, 10h00
Dernier message: ark
  [C TOTW 1] Trick avec #include ark 10 558 01-09-2014, 18h23
Dernier message: Commodor

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut