Zgodność kodu z ANSI

0

Czy tego rodzaju tablicowy typedef:

typedef int tablica[5];

jest zgodny ze standardem ANSI C?

3
  1. jesteś pewien tego ANSI ? To lata dinozaurów
  2. jak wielojęzykowiec, a może z własnych preferencji, nie lubię typedef ze względów szerszych, a bardzo nie lubie w takich kontekstach *)
    Jakbym miał dylemat "jak sformalizować tablicę[5] jako nowy typ - by ją opakował w strukturę. Podnosi type-safety na poziom nieosiągalny w pierwotnym pomyśle. Brak kosztów na runtime. Rozwojowe jakby była migracja na "C z klasami" czy C++.
   struct Something {
     int tablica[5];
   }

*) zarazem ważna dla mnie jest zmiana formalizmu struktury, aby pozbyć się słowa struct na styl C++, paradoks. Puder na syfa "C"

   typedef struct Something {
     int tablica[5];
   } Soemthing;
0

Przynajmniej sie kompiluje z ustawieniem -ansi: https://godbolt.org/z/Er3Gxfq9W

0

Jaki to ma sens czy to jest zgodne czy nie? Sprawdź czy działa a jak działa to po co drążyć temat? Nie jest to nikomu do niczego potrzebne.
No chyba, że sprawia Ci przyjemność pisanie idealnego kodu. To wtedy spoko.

3

są opcje cc jak już wyżej wspomniano.
-Wall -Wextra -pedantic -std=cnumer
i się nie oglądasz..


A tak w ogóle to co to za Polskie nazewnictwo zmiennych ;p

3
ZrobieDobrze napisał(a):

*) zarazem ważna dla mnie jest zmiana formalizmu struktury, aby pozbyć się słowa struct na styl C++, paradoks. Puder na syfa "C"

Dlaczego od razu syfa? Tak, to jest dziwny quirk w C, nie wiem po co to miało być i zostało wywalone w C++, ale jednak większy spokój ducha osiąga się unikając potworka typedef struct cośtam { ... } cośtam i robiąc to jak twórcy języka planowali:

struct cośtam {
   ...
};

i używanie zawsze struct cośtam.

Polecam do C coding rulesy stosowane we FreeBSD:
https://www.freebsd.org/cgi/man.cgi?query=style&sektion=9

1
Czitels napisał(a):

Jaki to ma sens czy to jest zgodne czy nie? Sprawdź czy działa a jak działa to po co drążyć temat? Nie jest to nikomu do niczego potrzebne.
No chyba, że sprawia Ci przyjemność pisanie idealnego kodu. To wtedy spoko.

Hmmm ... co definiujemy jako "działa" ?
Akurat to tylko w miejscu zadekalrowania będzie efektywnie int[5] - w pozostałych kontekstach int *
Czy OP tego chce ...

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