Writing a (valid) C program without main()

(labs.iximiuz.com)

20 points | by birdculture 8 hours ago ago

8 comments

  • eska 8 hours ago ago

    Note that this is not a “valid” C program according to the standard. The standard allows for freestanding and hosted environments. Freestanding allows for the entry point to be called something else than main, but there are other requirements. See section 4 and 5 of a draft if interested.

  • asveikau 8 hours ago ago

    I think the definition of "valid" may differ. Is this a standard conforming C program? No. Did you use implementation details of your platform to create a program that loads and runs correctly? Sure.

    Most interesting C programs violate the standard in some way though.

    • elpocko 8 hours ago ago

      >Most interesting C programs violate the standard in some way though.

      Wow, who counted them and decided what is or isn't interesting? And would the interesting programs still be interesting if they didn't violate the standard?

      • pechay 7 hours ago ago

        All C programs are interesting. The first potentially non-interesting program in C is interesting because it's the first non-interesting one. :)

      • asveikau 7 hours ago ago

        I guess what I'm saying is that some common practices are under specified and live in gray areas of the standard, and practicing programmers rely on those behaviors.

        Sometimes other standards like POSIX cover the gaps.

  • pjmlp 5 hours ago ago

    > C is the closest you can get to the operating system without writing assembly.

    Nope, plenty of languages have been offering the same features since JOVIAL in 1958.

    That is an urban myth spread by folks that never learnt another systems programming language, or computing history.

  • pishpash 8 hours ago ago

    This isn't making a C program. It's using C tools and assembly tools to make an executable.