Estoy tratando de compilar pthreads para MSVC2015 y encontré un código extraño.
localPtr->wNodePtr->spin := PTW32_TRUE;¿Qué hace esta línea?
Como otros señalaron := no es un operador C válido.
Sin embargo, este "operador" := se encuentra dos veces en la versión fuente actual " PThread for Windows " que parece ser a partir de la v2.9.1 .
Ambas ocurrencias aparecen en ptw32_OLL_lock.c , que proclama " implementa bloqueos extendidos basados en colas de lectura/ escritura", pero no parece ser parte de la pthread*.dll , por lo que el archivo ptw32_OLL_lock.c no se pasa al compilador. .
Lo suficientemente interesante es que el archivo fuente en cuestión contiene un int main() y no está en el subdirectorio de test .
En general, esto parece ser alfa, beta o simplemente ruido, así que simplemente elimínelo.
IIRC, el estándar C no especifica nada sobre el operador := . Entonces, lo más probable es que no sea C estándar.
Sin embargo, AFAIK, algunos lenguajes, que usan = como operador de comparación, para separar la asignación de la comparación , usan := como operador de asignación . [Ejemplo: Pascal, postgresql]
En algunos otros casos, tiene el significado de que la variable se define y asigna en el mismo paso, para diferenciarse con la asignación normal en otros lugares. [Ejemplo: IR]
:= no es un operador válido en C.
Sin embargo, tiene uso en otros lenguajes, por ejemplo ALGOL 68. Básicamente, para lo que quieras saber, el := en este ejemplo se usa para asignar la variable PTW32_TRUE a localPty->wNodeptr->spin
Esto se hace principalmente para eliminar cualquier ambigüedad en el código, para evitar usar '=' para la asignación.