2012-10-18 22 views
11

Czytam kilka tutoriali na temat programowania wbudowanego i jeden z nich mówi, że int i signed int są różne, ale nie wyjaśniają, jak i dlaczego.Różnica między int i deklaracją int int

rozumiem dlaczego unsigned int i int są różne, ale int i signed int inności jest nowy dla mnie.

+2

To też jest dla mnie nowe. Czy jest to tutorial online? Jeśli tak, link byłby mile widziany. –

Odpowiedz

13

Jest to wyłącznie ze względów historycznych. Dzisiaj, gdy zadeklarujesz int, otrzymasz signed int. Jedynym punktem, w którym można zauważyć różnicę nawet w przypadku dzisiejszych kompilatorów, jest char versus signed char, które różnią się specyfikacją (i godne uwagi podczas przypisywania literalnego ciągu znaków), ale nie z int.

+0

jaka jest różnica między znakiem a znakiem podpisanym? Czy możesz podać przykład? – Anon

+2

@Anon - chodzi o to, że jest _zdefiniowany_, czy "char" jest domyślnie "podpisany" czy "unsigned". Standard nic o tym nie mówi. –

+0

@Kiril, dzięki. +1 ode mnie. Prosty i prosty. – Anon

2

O ile mi wiadomo różnica istnieje tylko dla typu danych char. Gdzie char a; może być signed char a; lub unsigned char a; w zależności od opcji kompilatora. Jak mówi this article. (--signed_chars) Dla typów danych int nie ma różnicy między int i signed int.

+0

+1, akceptując odpowiedź Eznme, ponieważ on/ona odpowiedział wcześniej i tak samo jak twoja odpowiedź. – Anon

+1

'char' nigdy nie jest tego samego typu co' unsigned char' lub 'signed char', mimo że ma taki sam zakres i reprezentację jak jeden z nich. –

+0

@SteveJessop Czy mógłbyś wyjaśnić więcej lub wskazać mi gdzieś, że mogę o tym przeczytać? – CCoder