2011-03-27 6 views
2
time_t raw_time = time(NULL); 
tm* current_time = localtime(&raw_time); 

J'ai eu la réponse moi-même ... J'ai totalement foiré les avertissements. Merci quand même.conversion invalide de time_t à const time_t *

+0

pouvez-vous poster ce que la réponse est proche de votre billet? Cette personne effectuant une recherche peut voir la réponse. –

+0

Bien sûr! Je vais poster la réponse ci-dessous – JASON

Répondre

2

localtime nécessite un argument de "time_t *" qui est un pointeur. Donc, vous devez mettre le & là.

4

La fonction localtime() remonte à quand (int) était 16 bits et le passage (long) sur la pile n'était pas largement supporté; en tant que tel, il était spécifié de passer (long *), ce qui à l'époque était de 16 bits. Il a été laissé tel quel parce que le changer casserait d'énormes quantités de code. Vous constaterez que la plupart des fonctions liées au temps le font, car elles étaient les seules fonctions à l'époque qui utilisaient (long). (lseek() est venu plus tard.Essayez de deviner quelle non-(long) -use fonction qu'il remplacé?)

+0

A part: une conclusion que vous pouvez en tirer est qu'ils * pensaient à l'avance quand ils utilisaient '(long)' pour les temps - juste pas loin * assez * devant. Ce n'était pas important car, étant donné que «(long)» était risqué, «(long long)» était impossible. – geekosaur

Questions connexes