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


    Membres: 2 604
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] apprendre-a-manipuler
    Site d'apprentissage de la manipulation d'autrui.
    Hacking
    [EN] Exploit-db
    Une base de données d'exploits triés par genre (GHDB, Remote, Local, Web, DOS, ShellCode) à ...
    Vulnérabilités
    [EN] Astalavista
    JavaScript: 1, Exploit: 2, Crypto: 34, CrackIt: 15, Stegano: 8, Programming: 12, Logic: 36, Special: 6, Science: 4, Info...
    Challenges
    [FR] InfoMirmo
    Apprentissage de l'informatique par l'intermédiaire de challenges de sécurité. Venez app...
    Hacking
    [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking
    [EN] Defcon
    Lancé en 1992 par Dark Tangent, DEFCON est la plus ancienne et la plus grande conférence underground de...
    Hacking

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