1

Onderwerp: C vraagje

Ik doe het volgende.

void belangrijke_functie()
{
    char naam="Pascal";
     int bepaallengte(char *s)
    {
        int l=strlen(s);
        while((l<1) && (s[l]==' '))
          l--;
       return l;
    }
   printf("lengte %s is %i\n", naam, l);
}

int main(int arc, char **argv)
{
   belangrijkefunctie();
   return 0;
}

Dit werkt bij mij prima (gcc 4.8.1), maar op de Mac vindt de compiler deze constructie niet goed.
'Een functie mag hier niet gedeclareerd worden'

Waarom ?

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

Re: C vraagje

Is Mac linux? tongue Hips.

ACAB: All computers are broken. https://medium.com/message/everything-i … e5f33a24e1 "I've decided that you need gray hair and hemorrhoids to be a consultant.
The gray hair makes you look distinguished & the hemorrhoids make you look concerned."

3

Re: C vraagje

devtroll schreef:

Is Mac linux? tongue Hips.

de vraag staat onder de kop Linux, BSD & UNIX.

Verder graag on topic.

Help mee om KDE 5 in het Nederlands te vertalen!!

4

Re: C vraagje

Onder het kopje programeren & scripten,  een plek waar non coders niets te zoeken hebben icon_twisted

Voor wie deze iewat 'awkward' costructie niet helemaal doorziet,
Ik wil binnen een functie een private functie opnemen welke later (zoals inmiddels ook is gebeurd) in een standaard library opgenomen kan worden.

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

5

Re: C vraagje

Antwoord gevonden.
http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

6 Laatst bewerkt door QzZRBNMdJdsCmwx (08 Oct 2015 18:59:19)

Re: C vraagje

pascal schreef:

Ik doe het volgende.

    char naam="Pascal";

Foei pascal! Sinds wanneer is "Pascal" een char en geen char * (of zelfs char const *)?

Terzake: dit is een goede reden om de '-std' vlag te gebruiken. GCC doet normaliter (zoals je ondervonden hebt) geen standaard C, maar een eigen dialect (gnu89). Dus het is beter om altijd

'-std=c99' of als je ouderwets bent '-std=c89' als vlag mee te geven aan gcc, zodat je ISO/ANSI C aan het programmeren bent.

7

Re: C vraagje

mea culpa
Ik heb in princype niets met flags te maken in de zin dat die in de Makefiles zitten, en op wijzigen van Makefiles staat de doodstraf.
Wel is er een Makefile.pascal waar ik een hoop mee kan omzeilen maar het moet op de andere systemen wel compileren he.
Reden is dat het spul o.a. op HP-UX moet compileren.
Mijn compiler is idd iets relaxter dan bij de colega's die met xcode werken, maar dan nog is het target Linux en HP-UX en geen Mac.
Windows geen idee, gebruiken wij niet al zou het moeten kunnen.

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

Re: C vraagje

Visual C ondersteunde iig geen C99. Ze implementeren alleen van nieuwere C standaarden wat nodig is voor nieuwe C++ standaarden.

9

Re: C vraagje

Visual C ???
Kom op zeg Daniel... je weet toch tegen wie je dit zegt !!! FOEI !

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

Re: C vraagje

Hun C++ compiler is misschien wat archaïsch (maar dat was gcc inmiddels ook), maar vrij goed. Probleem van Visual C is dat veel (alle?) POSIX spullen missen. In C++ niet zo'n probleem, want daar heb je Boost.

Mijn hart is verkocht aan clang/LLVM - veel betere foutmeldingen, veel betere tools voor statische analyse smile.

11

Re: C vraagje

Ik had een hele fijne omgeving met deze tool:
http://www.programmingresearch.com/products/qac/

Heerlijk wat die allemaal niet vond en op wees. smile
Beetje prijzig voor prive-gebruik. sad

MSVC is ook gemaakt voor C met een eigen MS implementatie omheen.

IF not THEN toch