|
|
|
|
Bonjour,
Voila je fais la retro-ingenierie des sources de openssl CMS et n'etant pas tres experimente en C je ne comprend pas les operateurs suivants:
|=
&=
~
dans le contexte suivant:
int flags=CMS_DETACHED;
[...]
flags &= ~CMS_DETACHED;
[...]
flags |= CMS_BINARY;
Dans les tutos de langage C sur le net on ne parle pas de ces operateurs.
Pourraient ils etre definis dans les lignes de commandes du precompilateur dans un fichier .h quelconque de l'application.
Merci
Configuration: Linux Kubuntu 7.04 gutsy Kdevelop
A |= b; est équivalent à : a = a|b; => le "ou" binaire
|
Salut,
flags &= flag & ( ~CMS_DETACHED); [...] flags = flag | CMS_BINARY; 106485010510997108 |
Re,
|
Ah oui merci je vois, ce sont les operateur daffectation mais a quoi cela peut il servir de faire de OU bit a bit sur un entier (entre en Hexadecimal dans le code) qui est une option (binaire, message signe ou non...) propre a lapplication.
|
Salut,
include <stdio.h>
#define CMS_BINARY 0x80
#define CMS_DETACHED 10
int main()
{
int flags=CMS_DETACHED;
printf("%d\n",flags);
flags|=CMS_BINARY;
printf("%d\n",flags);
return 0;
}
106485010510997108 |
Hello
#define TIOCM_LE 0001 /* line enable */ #define TIOCM_DTR 0002 /* data terminal ready */ #define TIOCM_RTS 0004 /* request to send */ #define TIOCM_ST 0010 /* secondary transmit */ #define TIOCM_SR 0020 /* secondary receive */ #define TIOCM_CTS 0040 /* clear to send */ #define TIOCM_CAR 0100 /* carrier detect */ #define TIOCM_CD TIOCM_CAR #define TIOCM_RNG 0200 /* ring */ #define TIOCM_RI TIOCM_RNG #define TIOCM_DSR 0400 /* data set ready */ |
Je crois que j'ai compris le principe.
|