Cuando reproduje y ejecuté este código usando gcc 4.8.1 presumiblemente ejecutándose en un sistema basado en Unix (ideone), obtuve 0.
Puede confundirse con el límite inferior inicial de la búsqueda, pero cuando cambié mi límite inferior deliberadamente para buscar desde 1, todavía devolvió 0.
Así que esencialmente es un comportamiento indefinido.
De lo que obtuve al buscar en línea, que el retorno de la función es básicamente el valor del registro EAX en una CPU Intel. Cuando no llena el registro, aún puede devolver el último valor con el que se rellenó.
- Cómo determinar el número total de triángulos degenerados sin bucles de una longitud determinada (más de 3)
- ¿Cómo se usa el teorema de Bayes en robótica?
- ¿A las personas apasionadas por las matemáticas también les encanta la codificación?
- ¿Dónde puedo encontrar un tutorial simplificado para Atkin's Sieve?
- ¿Cuáles son las formas o tipos de problemas en los que XOR es útil?
También se supone que EAX se utiliza como un registro temporal para las variables de función local y puede terminar devolviendo sus valores también.
Entonces sí, lo estoy reiterando, pero es básicamente un comportamiento indefinido.
Ver aquí para referencia:
La función devuelve el valor sin la declaración de devolución