Poprawność wyrażenia znalezionego w książce

0

Czy wyrażenie w języku C:

spr = = 6; 

jest poprawne? Według kompilatora nie, jednak według autora jednej książki, tak. Chyba, że w starszych implementacjach było to traktowane jako operator przyrównania.

0

To wyrażenie nie jest poprawne składniowo i kompilator ma w tym wypadku słuszność; Porównanie to to nie jest (nie ma instrukcji warunkowej), wpisanie wartości do zmiennej logicznej także nie (nie ma odpowiedniego porównania); Wygląda jak podwójne przypisanie, co oczywiście normalne nie jest;

Być może autor książki po prostu pomyslił się w pośpiechu (i wstawił dwa razy operator przypisania) - najpewniej chciał po prostu napisać:

spr = 6;

co jest składniowo poprawne.


Poza tym zamiast zakładać wątek mogłeś poszukać informacji w dokumentacji języka, gdzie składania jest dokładnie opisana.

0

Mam kod:

#define SZESC = 6;
cx = SZESC; 

Po czym pisze, że jest to kod prawidłowy, lecz niezbyt użyteczny.

0

No bo jest składniowo poprawny; Tylko co ma ten kod wspólnego z operatorem z pierwszego postu?

EDIT: Zmieniłeś kod i teraz jest niepoprawny; Po SZESC nie może być operatora przypisania:

#include <stdio.h>

int main(void) {
	int cx;

	#define SZESC 6;
	cx = SZESC;

	printf("%d", cx);
	return 0;
}

http://ideone.com/YjPJMf

0

Dobra, rozumiem, sam do tego doszedłem. Jednak moje pytanie nie dotyczyło tego, jak naprawić ten problem, lecz czy ten kod jest niepoprawny i już, czy może jakieś starsze implementacje dopuszczały takie rozwiązanie? Czy to aby po prostu zwykły najzwyklejszy błąd? Jeśli tak, to koniec tematu.

0

@pasasap - czy Ty w końcu zrozumiesz, że przedstawiony kod jest według nowszych (nie powiem dokładnie bo nie piszę w C/C++) jest błędny? Jeśli chcesz wiedzieć czy dany kod był poprawny dla wcześniejszych standardów to poczytaj dokumentacje na ten temat, bo właśnie do tego i wielu innych celów zostały stworzone;

Poza tym nie napisałeś jaki to autor, jaka książka, więc skąd my mamy wiedzieć w jakich czasach była ona napisana? Rok temu, dwa, pięć, dziesięć, dwadzieścia? Zastanów się najpierw i zacznij nieco samemu szukać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1