• STATISTIQUES
  • Il y a eu un total de 2 membres et 14226 visiteurs sur le site dans les dernières 24h pour un total de 14 228 personnes!


    Membres: 2 433
    Discussions: 3 585
    Messages: 32 832
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] CS Tutoring Center
    Site de challenge spécialisé dans les challenges de programmation C++ et java cependant, d'autres langages pe...
    Challenges
    [EN] Big-Daddy
    Big-Daddy est site internet communautaire avec un effectif diversifié, y compris des artistes, des programmeur...
    Hacking
    [EN] phrack
    Lot's of stuff !
    Hacking
    [EN] This is legal
    Basic: 10, Realistic: 5, Programming: 1, Bonus: 11, SQL: 2, Encryption: 6, Application: 4, User Contributed: 3
    Challenges
    [FR] Secuser
    Actualité de la sécurité informatique, fiches virus et hoax, alertes par email, antivirus gratui...
    Hacking
    [FR] µContest
    µContest est un site de challenges de programmation, c'est à dire qu'il propose des épreu...
    Hacking
    [EN] Hack this site
    Basic: 11, Realistic: 17, Application: 18, Programming: 12, Extbasic: 14, Javascript: 7, Stego: 17
    Challenges

  • 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 2,374 06-03-2016, 23h36
Dernier message: Commodor
  [C TOTW 2] Parcours de tableau ark 5 1,525 29-09-2014, 17h44
Dernier message: crown
  [C TOTW 5] bitfields ! ark 4 1,375 23-09-2014, 11h17
Dernier message: Aniem
  [C TOTW 4] Equivalent de try / catch / throw en C ark 0 751 15-09-2014, 10h00
Dernier message: ark
  [C TOTW 1] Trick avec #include ark 10 2,622 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