Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #18834

Re: reasons for preferring C over C++

From Paul Rubin <no.email@nospam.invalid>
Newsgroups comp.arch.embedded
Subject Re: reasons for preferring C over C++
Date 2014-10-19 17:00 -0700
Organization Nightsong/Fort GNOX
Message-ID <7xoat7hape.fsf@ruckus.brouhaha.com> (permalink)
References <543ead04$0$15847$e4fe514c@dreader35.news.xs4all.nl> <m1mmar.23s.1@stefan.msgid.phost.de> <caf18hF6lueU1@mid.individual.net> <7x4mv1tdyv.fsf@ruckus.brouhaha.com> <cahbdfFp8kcU1@mid.individual.net>

Show all headers | View raw


"tim....." <tims_new_home@yahoo.co.uk> writes:
>> [ STL containers ]
> the syntax is awful - completely unintelligible to someone who has
> never seen it before (and sometimes even if you have)

It seemed pretty natural to me. std::vector<float> is a vector of
floats.  std::vector<int> is a vector of ints, and so on.  

> and for what: to save me writing a discrete function to perform the
> task

Well yeah, you get tested, standardized implementations of a bunch of
datatypes that occur over and over in real world programs.  Who wants to
write a new function, debug it, maintain it, make others maintain it,
figure out and maintain the implementations of such functions written by
others, stop groaning after finding there are dozens of implementations
of essentially the same function in any large codebase, etc.  Imagine
the C library didn't standardize printf, so everyone wrote their own
function for printing numbers in decimal.  Yeah you could, but it gets
in your way at more levels than you might expect.

>> They will do stuff like automatic resizing
> Do you mean between types.  

No, I mean the STL vector class will let you grow the vector, like:
  std::vector<int> v;  // v is now an empty vector
  v.push_back(3);      // v now contains the element 3
  v.push_back(4);      // v now has two elements (3 and 4)

> In a small embedded system who cares?  I'm going to be using bools, 8
> bit bytes and 16 or 32 bit words.

In very small systems (less than 4k of ram, say), yes you probably do
want static allocation.  In these days embedded programming encompasses
those very small systems (8 bitters, Cortex M0) at one end where C is
workable.  Then there's a midrange (ARM Cortex M3, say) where C++ and
the STL bring benefits.  And finally there's systems with embedded Linux
or equivalent, which is not much different from desktop programming and
where C++ itself is too low level for lots of apps (I've programmed
these systems in Python and have been interested in using Erlang on
them).  Tiny systems are a niche even in embedded software now.

>> and range checking
> big deal

Given the amount of bugs in real code caused by subscript errors, range
checking is a good thing too.

>>, and they allow you to use containers of multiple
> but I won't have enough types for this to be a problem

Look up "typeful programming" and start using more types.  It will
decrease your debugging time :).

>> STL is not really hard to use.
> No it's not hard to use, but it is like 1000 discrete facts long.  And
> the tests always ask you about the most obscure ones.

I've found cppreference.com to have enough info to use STL effectively.

> at 2 minutes per question you don't have enough time for more that a
> cursory glance

In that case they're trying to check your experience level.

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

reasons for preferring C over C++ Wouter van Ooijen <wouter@voti.nl> - 2014-10-15 19:21 +0200
  Re: reasons for preferring C over C++ Paul Rubin <no.email@nospam.invalid> - 2014-10-15 10:36 -0700
    Re: reasons for preferring C over C++ Wouter van Ooijen <wouter@voti.nl> - 2014-10-15 19:48 +0200
      Re: reasons for preferring C over C++ Tom Gardner <spamjunk@blueyonder.co.uk> - 2014-10-15 21:25 +0100
        Re: reasons for preferring C over C++ Wouter van Ooijen <wouter@voti.nl> - 2014-10-15 23:28 +0200
          Re: reasons for preferring C over C++ Tom Gardner <spamjunk@blueyonder.co.uk> - 2014-10-15 23:40 +0100
  Re: reasons for preferring C over C++ Don Y <this@is.not.me.com> - 2014-10-15 10:58 -0700
  Re: reasons for preferring C over C++ upsidedown@downunder.com - 2014-10-15 21:03 +0300
    Re: reasons for preferring C over C++ Don Y <this@is.not.me.com> - 2014-10-15 11:11 -0700
    Re: reasons for preferring C over C++ Wouter van Ooijen <wouter@voti.nl> - 2014-10-15 20:26 +0200
  Re: reasons for preferring C over C++ Stefan Reuther <stefan.news@arcor.de> - 2014-10-15 20:44 +0200
    Re: reasons for preferring C over C++ Wouter van Ooijen <wouter@voti.nl> - 2014-10-15 23:30 +0200
      Re: reasons for preferring C over C++ Stefan Reuther <stefan.news@arcor.de> - 2014-10-16 18:19 +0200
        Re: reasons for preferring C over C++ Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2014-10-16 23:12 +0200
          Re: reasons for preferring C over C++ Reinhardt Behm <rbehm@hushmail.com> - 2014-10-17 13:25 +0800
          Re: reasons for preferring C over C++ Stefan Reuther <stefan.news@arcor.de> - 2014-10-17 18:43 +0200
    Re: reasons for preferring C over C++ "tim....." <tims_new_home@yahoo.co.uk> - 2014-10-18 12:29 +0100
      Re: reasons for preferring C over C++ Paul Rubin <no.email@nospam.invalid> - 2014-10-18 11:44 -0700
        Re: reasons for preferring C over C++ Tom Gardner <spamjunk@blueyonder.co.uk> - 2014-10-18 22:25 +0100
          Re: reasons for preferring C over C++ Paul Rubin <no.email@nospam.invalid> - 2014-10-18 15:42 -0700
            Re: reasons for preferring C over C++ Niklas Holsti <niklas.holsti@tidorum.invalid> - 2014-10-19 11:03 +0300
            Re: reasons for preferring C over C++ Tim Wescott <seemywebsite@myfooter.really> - 2014-10-19 17:46 -0500
              Re: reasons for preferring C over C++ Paul Rubin <no.email@nospam.invalid> - 2014-10-19 16:28 -0700
              Re: reasons for preferring C over C++ Nobody <nobody@nowhere.invalid> - 2014-10-20 02:47 +0100
        Re: reasons for preferring C over C++ "tim....." <tims_new_home@yahoo.co.uk> - 2014-10-19 09:34 +0100
          Re: reasons for preferring C over C++ Paul Rubin <no.email@nospam.invalid> - 2014-10-19 17:00 -0700
            Re: reasons for preferring C over C++ Tom Gardner <spamjunk@blueyonder.co.uk> - 2014-10-20 08:50 +0100
              Re: reasons for preferring C over C++ "tim....." <tims_new_home@yahoo.co.uk> - 2014-10-20 11:57 +0100
                Re: reasons for preferring C over C++ Tom Gardner <spamjunk@blueyonder.co.uk> - 2014-10-20 12:11 +0100
                Re: reasons for preferring C over C++ upsidedown@downunder.com - 2014-10-20 22:36 +0300
                Re: reasons for preferring C over C++ Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2014-10-21 00:36 +0000
            Re: reasons for preferring C over C++ Tom Gardner <spamjunk@blueyonder.co.uk> - 2014-10-20 08:52 +0100
            Re: reasons for preferring C over C++ "tim....." <tims_new_home@yahoo.co.uk> - 2014-10-20 11:56 +0100
        Re: reasons for preferring C over C++ Stefan Reuther <stefan.news@arcor.de> - 2014-10-19 10:52 +0200
          Re: reasons for preferring C over C++ Paul Rubin <no.email@nospam.invalid> - 2014-10-19 17:16 -0700
      Re: reasons for preferring C over C++ glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-10-18 23:02 +0000
        Re: reasons for preferring C over C++ "tim....." <tims_new_home@yahoo.co.uk> - 2014-10-19 09:45 +0100
  Re: reasons for preferring C over C++ David Brown <david.brown@hesbynett.no> - 2014-10-15 22:12 +0200
    Re: reasons for preferring C over C++ Wouter van Ooijen <wouter@voti.nl> - 2014-10-15 23:35 +0200
      Re: reasons for preferring C over C++ Paul Rubin <no.email@nospam.invalid> - 2014-10-15 19:10 -0700
      Re: reasons for preferring C over C++ Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2014-10-16 10:34 +0300
        Re: reasons for preferring C over C++ Tom Gardner <spamjunk@blueyonder.co.uk> - 2014-10-16 10:10 +0100
  Re: reasons for preferring C over C++ Tim Wescott <tim@seemywebsite.com> - 2014-10-16 01:06 -0500
  Re: reasons for preferring C over C++ Anders.Montonen@kapsi.spam.stop.fi.invalid - 2014-10-16 08:32 +0000
    Re: reasons for preferring C over C++ David Brown <david.brown@hesbynett.no> - 2014-10-16 20:54 +0200

csiph-web