Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495

    [C per Windows] Definizione strana funzione

    Ciao a tutti,

    e' da tempo che non mettevo mano a software scritto in C/C++ e devo mettere mano a un driver di una periferica scritto in C++ per Windows.

    Ci sono alcune convenzioni che non capisco: qualcuno me le spiega? Ad esempio, ho una funzione cosi' definita:

    codice:
    extern "C" int __stdcall Chiudi(int porta)
    {
        // Codice della funzione
    }
    Cosa significa extern "C"?

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    è una specificazione di un linkage alternativo

    in C++ quando il compilatore trova una funzione come questa

    codice:
    int ciao(int, char);
    la converte in roba tipo

    codice:
    int_ciao_param_int_char
    o circa, per permettere l'overload, usando extern ciò non avviene, e il compilatore C++ compila la funzione come fosse C.

    Altro utilizzo di extern è dire al compilatore che questa variabile è già definita in qualche altro file.

    se hai

    A.h
    codice:
    int a = 1234;
    e devi usare in B.cpp a, farai

    codice:
    extern int a;//il compilatore cerca in qualche altro file a
    inoltre extern può dire al compilatore che la variabile è nello stesso file, ma dopo il suo uso, ad esempio.

    codice:
    extern int a;
    int e = a + 5;
    int a = 10;
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

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.