Präprozessor einfache frage



  • Hallo,

    ich verstehe folgenden code nicht. Mittels google und Sufu komme ich nicht zum Verstehen:

    #ifdef SHMEM
         ptrs_buf  = (int *)    shmalloc(max_buf_size*sizeof(int));
    #else
         ptrs_buf  = (int *)    malloc(max_buf_size*sizeof(int));
    #endif
    

    Kann es so sein dass wenn ich irgendwie ein flag beim compilieren setze - also hier z.B SHMEM (wie auch immer das geht) dann wird speziell mit der shmalloc routine compiliert. Ansonsten also normalerweise dann halt malloc?

    Danke für eure geduldige Hilfe!



  • jippii_cc schrieb:

    Hallo,
    Kann es so sein dass wenn ich irgendwie ein flag beim compilieren setze - also hier z.B SHMEM (wie auch immer das geht) dann wird speziell mit der shmalloc routine compiliert. Ansonsten also normalerweise dann halt malloc?

    du kannst shmalloc auf zwei varianten anschalten: entweder du schreibst an eine beliebige stelle vor diesem #ifdef:
    #define SHMEM
    oder du rufst deinen compiler mit ein passenden parameter auf, dass er SHMEM setzt.
    beim gcc geht das so: -DSHMEN


Anmelden zum Antworten