Visualizzazione dei risultati da 1 a 6 su 6

Discussione: X esperti di C

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    15

    X esperti di C

    Salve, aprofitto per postare qui alcuni miei dubbi e perplessità rigurdante questo linguaggio.

    Sono un newbie, e volevo fare solo 2 domande:

    1) Meglio usare i=i+1 i++ o i+=1?
    Volevo sapere qual'era il migliore in termine di velocità e perchè
    2) Perchè se dichiaro
    codice:
    char s[4]="ciao";
    Non funziona?...essi che ciao è formata da 4 lettere.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    1) Secondo me è la stessa cosa in termini di velocità... Io uso sempre i++ risparmio di digitare qualche carattere...

    2) char s[4] = {'c','i','a','o'}


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    credo che sia meglio usare var+=n invece che var=var+n xke in fase di esecuzione risulta di 1 istruzione in meno.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798

    Re: X esperti di C

    Originariamente inviato da michelez
    Salve, aprofitto per postare qui alcuni miei dubbi e perplessità rigurdante questo linguaggio.

    Sono un newbie, e volevo fare solo 2 domande:

    1) Meglio usare i=i+1 i++ o i+=1?
    Volevo sapere qual'era il migliore in termine di velocità e perchè
    2) Perchè se dichiaro
    codice:
    char s[4]="ciao";
    Non funziona?...essi che ciao è formata da 4 lettere.

    Grazie
    1) usa tranquillamente i++, il codice risulta più snello e leggibile

    2) dovresti dichiarare l'array di caretteri con un valore in più per contenere anche il carattere terminatore di stringa:
    codice:
       char s[5] = "ciao";

  5. #5
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Come ti dice anche Sergio usa i++, se poi devi incrementare di più di 1 usa i+=2 (ad esempio), oltre che rendere il codice più leggibile sembra produrre anche degli algoritmi migliori in fase di compilazione.

    Per "char" ti confermo anche in questo caso il discorso di Sergio, una stringa in C è un array di caratteri che termina con il carattere terminatore, in effetti con
    codice:
      char s[4]="ciao";
    ti da un output di questo tipo: ciao8õÿ¿í@

    mentre con
    codice:
      char s[5]="ciao";
    l'output è "pulito": ciao

    Ciao :gren:
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  6. #6
    Premessa: per gli x86. Conosco solo quelli..

    1) i++ e` il piu` immediato perche` si riduce ad un`istruzione sola, e con un solo operando (tralasciando i vari ptr e le ottimizzazioni):

    codice:
    inc [i]
    2) Poi viene 'i += 1', 1 istruzione:

    codice:
    add [i], 1
    3) E infine 'i = i + 1', 3 istruzioni:

    codice:
    mov eax, [i]
    add eax, 1
    mov [i], eax
    In genere il compilatore si preoccupa di ottimizzare al meglio. In ogni caso usa 'i++', per tutti i motivi gia` citati.

    Ciao.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.