Possible en double:
ID generator with local static variable - thread-safe?Fonction variable locale statique Pour Id unique génération
la fonction suivante renverrait un numéro unique à chaque fois qu'il est appelé? Qu'en est-il dans un scénario multithread?
int returnUniqueNumber()
{
static int i = 0;
++i;
return i;
}
Vous ne devriez pas émis le 'statique int * 'à un' long volatile '--rather, il devrait être un 'LONG *' (qualifié de façon appropriée) dans les deux cas, et être converti en un 'int' en retour (ou simplement implicitement par la fonction.)' long 'et' int' (et Windows ''LONG' typedef) ne sont pas toujours de la même taille, et bien que cette distribution puisse être bien sur Windows, elle encourage les mauvaises habitudes. :) –
@Jonathan: Point pris, Fixe. – Goz
Je vous salue, monsieur. +1 pour vous et +1 pour un code simple et précis! –