Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    69

    [C / VS C++ 2008] Warning funzione non definita

    Salve,

    sto usando Visual Studio 2008 C++ Express per un progetto in C. Come sono solito fare ho diviso i sorgenti in moduli .c e .h.
    Fino ad oggi tutto ok, nessun problema particolare. Poi all'improvviso mi trovo in questa situazione:

    In un modulo "info_table.c" devo richiamare una funzione il cui corpo e' definito in "info_key.c" e il prototipo e' quindi dichiarato in "info_key.h". Quindi cosa faccio, beh semplicemente aggiungo una "#include <info_key.h>" in "info_table.c", no?!? Beh magia, il compilatore mi dice che la funzione che voglio chiamare non e' definita e che verra' intesa come funzione esterna che ritorna un int (warning C4013).

    La prima cosa assurda e' appunto che il sorgente info_table.c, nonostante la include di info_key.h, non trovi la definizione della funzione che voglio utilizzare.

    La seconda cosa magnifica e' che in info_key.c e info_key.h sono definite diverse altre funzioni oltre a quella in questione. Cosi' ho provato ad usare una di queste altre funzioni e, magia, compila senza quel warning. Ho stra-controllato che il nome della funzione sia giusto. Non ci sono errori. Sapete cosa ho fatto allora? Ho definito un'altra funzione ancora, sempre in info_key.c e info_key.h e usandola in info_table.c ritorna il warning suddetto. Quindi cosa sta succedendo? In pratica tutte le funzioni definite fino a ieri in info_key.c/.h posso usarle senza warning, ma tutte le funzioni nuove che potrei dover definire mi danno quel maledetto errore di compilazione.

    L'ultima cosa incredibile e' che, prendendo i sorgenti che producono sto warning e copiandoli in un nuovo progetto di Visual Studio e copiando la configurazione del nuovo progetto da quella del progetto che produce il warning... tutto compila perfettamente!!! Ma che caspita succede?!?!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    69
    Piccolo Update:
    Modifcando il livello di severita' del warning del compilatore da W3 a W2 (in pratica abbassando la severita') il warning sparisce. Ma a livello pratico quello che ho notato e' che la funzionalita' di auto-completamento di Visual Studio non si comporta correttamente per la funzione che prima generava il warning. In pratica per tutte le altre funzioni, l'auto-completamento mi mostra i nomi suggeriti in un menu a tendina e una volta selezionata la funzione desiderata, appare un piccolo tooltip che mi indica esattamente il prototipo della funzione (es. int printf(const *char Format..)).
    Per quella maledetta funzione che genera il warning invece, l'auto-completamente funziona parzialmente, cioe' la funzione appare fra quelle suggerite nel menu a tendina, ma una volta selezionata, non compare il tooltip con le indicazioni del prototipo della funzione.
    Misterioso...

  3. #3
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Magari se mostri il codice si può dire qualcosa di più.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.