Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [c] typedef struct accessibili da più file .c

    ragazzi se ho una qualunque struct dove dovrei dichiararla per renderla accessibile a tutte le funzioni che si trovano nei vari file .c di un progetto?

    se io dichiaro una struct nel file main.c, e dopo ho una funzione in un file .c che la usa nei parametri il dev-c++ da un errore

    thx

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Devi dichiarare la struttura in un file header (.h) che includerai dove serve.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    cioè non basta che includo quel file .h solo nel main.c cosi da avere le dichiarazioni disponibili in tutti i file.c?

    mamma mia è cosi OLD questo linguaggio perchè lo insegnano all'uni :S

    grazie mille ora provo

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da xnavigator
    cioè non basta che includo quel file .h solo nel main.c cosi da avere le dichiarazioni disponibili in tutti i file.c?
    Lo devi includere nei .c in cui ti serve.

    mamma mia è cosi OLD questo linguaggio perchè lo insegnano all'uni :S
    Fanno benissimo invece ... ma che "old" ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    domandina veloce, rimanendo in tema struct, sai se c'è un modo per definire il deafault di un campo?

    per esempio

    codice:
    struct miastruct{
     int a=0;
     int b;
    }
    darà errore sulla linea 2 perchè devo togliere quel =0;

  6. #6
    No, in C non si può fare. Lo potresti fare in C++ inizializzando il campo nel costruttore.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    Originariamente inviato da xnavigator
    mamma mia è cosi OLD questo linguaggio perchè lo insegnano all'uni :S
    forse perché è uno di quei pochi linguaggi su cui ci puoi fare un sistema operativo di sopra?
    Da noi insegnano Java e sono molto felice di saperlo usare, ma sono anche felicissimo che alle superiori (prima) e quelle poche lezioni di sistemi operativi / distribuiti mi hanno fatto apprezzare questo linguaggio (come lo definisci tu) OLD...
    io non so se tu conosci linux...beh...è tutto basato sul C...ma non solo...
    Ti do un'altra spiegazione per la quale è importante conoscerlo.
    La sintassi che usa C è stata talmente apprezzata dai programmatori che l'hanno riutilizzata per altri linguaggi, come C++, C#, Java, PHP e chi più ne ha + ne metta...
    Cmq, sarà arcaico, ma ti assicuro che ti permette di fare tutto e quando dico tutto, ti assicuro che solo la tua immaginazione ti potrà limitare....
    detto questo..concludo
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  8. #8
    infatti ci hanno fatto gli OS perchè gli OS li hanno sviluppati nel 1980 (per sparare una data)... ovvio...

    come fai a dire che non è OLD se in un array normale non ci possono andare 2 tipi differenti di variabili

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da xnavigator
    infatti ci hanno fatto gli OS perchè gli OS li hanno sviluppati nel 1980 (per sparare una data)... ovvio...
    E che significa? Non mi pare che il kernel Linux (tanto per citare un caso) sia stato sviluppato negli anni '80... a me risulta che sia stato scritto nel '91 e che ancora oggi sia in continua espansione, e che gli svilupptori continuino ad aggiornarlo rigorosamente in linguaggio C... il giorno che faranno un porting di Linux in Java, C++, Python o quello che vuoi sarà il giorno in cui tornerò ad usare la macchina per scrivere :°D

    Originariamente inviato da xnavigator
    come fai a dire che non è OLD se in un array normale non ci possono andare 2 tipi differenti di variabili
    Il C è sicuramente un linguaggio molto meno flessibile rispetto ad altri, questo è vero, ma è il linguaggio dei programmatori, scritto da programmatori e per programmatori... se non ha molte funzionalità native è perché i suoi stessi creatori vollero che fosse "piccolo e compatto", di modo che il programmatore potesse conoscerlo a fondo e padroneggiarlo bene con tutte le sue caratteristiche.

    Although the absence of some of these features [elencate nelle pagine precedenti, nda] may seem like a grave deficiency, (``You mean I have to call a function to compare two character strings?''), keeping the language down to modest size has real benefits. Since C is relatively small, it can be described in small space, and learned quickly. A
    programmer can reasonably expect to know and understand and indeed regularly use the entire language. (da "The C programming language")
    every day above ground is a good one

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    Originariamente inviato da xnavigator
    come fai a dire che non è OLD se in un array normale non ci possono andare 2 tipi differenti di variabili
    primo, perché la definizione di array è quello di avere un insieme di dati dello stesso tipo
    secondo, a parte i linguaggi di scripting, nessun linguaggio ti permette di fare quello che dici tu
    terzo, anche se ci sn linguaggi che te lo permettono, è una cosa che non va fatta, che fa confondere e di nessuna utilità
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

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.