[c][gcc] kompilacja i uruchomienie programu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
tomeks91
Piegowaty Guziec
Piegowaty Guziec
Posty: 26
Rejestracja: 07 paź 2010, 21:04
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [c][gcc] kompilacja i uruchomienie programu

Post autor: tomeks91 »

To znaczy powiem tak mniej więcej rozumiem, no ale nie rozumiem...
Przecież w pętli while w środku(nawiasach) powinno być jakieś wyrażenie logiczne którego wartość powina być prawda lub fałsz, a dopiero później instrukcje.
Czy ma to jakiś związek że tu są tablice?
Ok dobra chyba zakapowałem chodzi o to że tam jest ''='' a nie ''=='' i po tym można rozróżnić. Dzięki wszystkim.
Awatar użytkownika
Szmitas
Zakręcona Traszka
Zakręcona Traszka
Posty: 572
Rejestracja: 28 lis 2006, 17:38
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86
Lokalizacja: Luboń
Kontakt:

Odp: [c][gcc] kompilacja i uruchomienie programu

Post autor: Szmitas »

(to = from) == '\0'

Masz wyrażenie logiczne - póki dane są przepisywane wartość wyrażenia jest 1, trafia na null i zmienia wartość na 0, pętla się kończy.
www.ubuntu-pomoc.org - tutaj znajdziesz rozwiązanie każdego Twojego problemu.

Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
tomeks91
Piegowaty Guziec
Piegowaty Guziec
Posty: 26
Rejestracja: 07 paź 2010, 21:04
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [c][gcc] kompilacja i uruchomienie programu

Post autor: tomeks91 »

Ok już mi wszystko z tym gra.
Mam jeszcze fragment
int i = 0;
while( --argc )
v[i++] = atof( argv[i+1]);
No i wyświetla się warning: operation on 'i' may be undefined.
Ale program działa jak dla mnie poprawnie, więc mogę zignorować to ostrzeżenie? Jak tak napisze na egzaminie to będzie dobrze? Czy można to zapisać jakoś inaczej z użyciem i?
kklimonda
Zakręcona Traszka
Zakręcona Traszka
Posty: 585
Rejestracja: 20 kwie 2008, 04:21
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME

Odp: [c][gcc] kompilacja i uruchomienie programu

Post autor: kklimonda »

użycie operatora post inkrementacji w tym kontekście jest ryzykowne. Nie ma gwarancji, że kompilator zawsze wygeneruje kod który będzie najpierw robił inkrementację a dopiero później użył nowej wartości aby odwołać się do tablicy.. a może chcesz odwołać się do tablicy a potem zwiększyć i o 1? Lepiej zapisać to w ten sposób:

Kod: Zaznacz cały

int i;
for (i = 1; i < argc; i++) {
    v[i-1] = atof(argv[i]);
}
(zakładam, że chcesz skopiować zawartość argv do v z pominięciem pierwszego elementu.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości