Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Activity for Lundin‭

Type On... Excerpt Status Date
Edit Post #280976 Question closed about 4 years ago
Comment Post #280976 This has nothing to do with software development.
(more)
about 4 years ago
Comment Post #280978 Thanks @Alexei. I think this was really just an accidental slip from all involved, I don't recall anyone actually arguing against troubleshooting questions.
(more)
about 4 years ago
Comment Post #277341 @Ayxan Haqverdili Whereas the proposed `-pedantic-errors` just turn all warnings related to C language violations into errors, which might be more useful. Particularly when you are playing around with other options that come with lots of false positives such as `-Wconversion`.
(more)
about 4 years ago
Edit Post #280969 Initial revision about 4 years ago
Answer A: Are code troubleshooting posts allowed?
You are right, the on-topic page is confusing - trouble-shooting and general programming questions should obviously be on-topic! Perhaps we considered it so obvious that it fell between the lines on What type of questions can I ask here? That on-topic page is still kind of in the draft stages. ...
(more)
about 4 years ago
Comment Post #280967 @Ayxan Haqverdili‭ In order to do that, the compiler would have to implement some crazy scheme to keep the types different and non-compatible internally. And for what purpose, just to break code unexpectedly? Compilers, most notably gcc, has already received a tonne of criticism for strict aliasing a...
(more)
about 4 years ago
Comment Post #280967 @Ayxan Haqverdili‭ It doesn't make sense for a compiler to implement any other character type than `unsigned char` so why would it? If there exists a type `unsigned char` which is 8 bits and another type `uint8_t` which is also 8 bits and neither have padding bits, why would you make them non-compati...
(more)
about 4 years ago
Comment Post #280967 @Ayxan Haqverdili‭ The key here is 8 bit two's complement. Some manner of custom type could in theory have all manner of representations. `unsigned char` can only have one representation and `signed char` can only be 1's compl, 2's compl or signed magnitude. In case the system uses 2's compl and 8 bi...
(more)
about 4 years ago
Edit Post #280967 Initial revision about 4 years ago
Answer A: Is `uint8_t` always an alias for a character type if it exists?
Yes, it is in practice always a character type and you can safely assume as much, both in terms of (g)lvalue access and in terms of strict pointer aliasing. If not, the compiler would soon render itself completely useless. C and C++ both got the following rule (C17 7.20.1.1/3) > `intNt` ... `u...
(more)
about 4 years ago
Edit Post #280641 Post edited:
typo
about 4 years ago
Comment Post #278172 @Estela The terms operator precedence, associativity and order of evaluation ("sequenced before"/"sequenced after") are the same in C++. The only difference is that in later versions, C++17 and beyond has added well-defined order of evaluation for certain specific operators such as `=`.
(more)
about 4 years ago
Comment Post #280640 @jrh `uint8_t` will have to be a character type if supported, I've written answers explaining why on SO. But please don't derail comments further; this has nothing to do with endianess. If you have a question about strict aliasing, please ask a separate question.
(more)
about 4 years ago
Comment Post #280640 @Chris Jester-Young‭ Furthermore, if you read the actual "strict aliasing rule", it has an explicit exception for lvalue access through a character type. C17 6.5/7: "An object shall have its stored value accessed only by an lvalue expression that has one of the following types: ... - a character typ...
(more)
about 4 years ago
Comment Post #280640 @Chris Jester-Young‭ No, that's wrong. There is a special rule allowing us to inspect any type in C by using a character type (uint8_t is always a character type if supported). C17 6.3.2.3/7. "When a pointer to an object is converted to a pointer to a character type, the result points to the lowest ...
(more)
about 4 years ago
Edit Post #280640 Post edited:
about 4 years ago
Edit Post #280640 Post edited:
about 4 years ago
Edit Post #280641 Initial revision about 4 years ago
Answer A: What is CPU endianness?
This goes back to the various CPU architecture "wars" in the 1970s-1980s between the competitors Intel and Motorola (for example Intel 8086 vs Motorola 68000). For various reasons, CPUs from these two manufacturers ended up with different byte ordering in relation to each other. Byte ordering referri...
(more)
about 4 years ago
Edit Post #280640 Initial revision about 4 years ago
Question What is CPU endianness?
I was fooling around with the following C code on my trusty old x86 PC: ```c #include #include int main (void) { uint32t u32 = 0xAABBCCDD; uint8t ptr = (uint8t)&u32; for(sizet i=0; i<sizeof(uint32t); i++) { printf("%.2X", ptr[i]); } } ``` To my surprise, this print...
(more)
about 4 years ago
Edit Post #278172 Post edited:
Formatting
about 4 years ago
Comment Post #280536 @dmckee‭ Yeah it sucks that various compilers decide to whine about that. It's like they never understood what #pragma is supposed to do in the first place.
(more)
about 4 years ago
Comment Post #280529 This new comment system sounds very promising overall - threaded comments would also be awesome too!
(more)
about 4 years ago
Comment Post #280536 Well, even in old school C you can simply use `#pragma` without any surrounding #ifdef. Compilers are supposed to simply ignore unknown pragmas and not whine about "unknown pragma".
(more)
about 4 years ago
Comment Post #280528 @dmckee Nan is going to be a special case no matter what you do.
(more)
about 4 years ago
Comment Post #280528 Compiler warnings are... compiler-specific :) You should probably manage these through different builds per compiler, if possible, keeping everything in IDE project settings or make files. Asserts in particular should be handled with debug vs release builds. As for exact floating point comparison, co...
(more)
about 4 years ago
Comment Post #280514 I would hope this gets implemented too. Couldn't find any feature request about it on meta.codidact though.
(more)
about 4 years ago
Comment Post #280449 It would probably be easier to generate a S-record or Intel hex file (text file formats). Then just search for the highest address, add this address to the size of the data stored at that address, then subtract the offset for where the flash starts from there.
(more)
about 4 years ago
Comment Post #280380 The terms "fullstack", "back end" and "front end" are only used in certain areas of programming. I think the terms are most commonly used in GUI and/or web applications(?). If you ask me, a "full stack" either means that the stack is full because you pushed too much onto it, or it means that you boug...
(more)
about 4 years ago
Comment Post #279895 The question was why to pick `do { } while(0)` over `{ }`. Your examples work just as fine with `{ }`.
(more)
over 4 years ago
Comment Post #279853 @Alexei It would be a perfectly fine use of meta to ask for feedback about a question draft before posting it live though.
(more)
over 4 years ago
Comment Post #279853 We actually discussed this very early on [here](https://forum.codidact.org/t/communities-dedicated-sites-for-professionals/320) (on the old forums, now closed). This was long before categories were invented though.
(more)
over 4 years ago
Comment Post #279853 As for having a separate newcomer site/category, it has been proposed many times before. I think it is easier to migrate the advanced topic to a separate site/category though. So for this specific site, it would mean that main Q&A should be the newbie friendly one, and we could add an "Expert" catego...
(more)
over 4 years ago
Comment Post #279853 The tabs = what's called categories on Codidact.
(more)
over 4 years ago
Comment Post #279772 Sounds like you can perhaps use some modified version of Prim's algorithm for the most efficient way to connect all nodes to a graph. Or some other manner of "greedy algorithm".
(more)
over 4 years ago
Comment Post #279081 @Martin Bonner As for Rasp Pi, it is a PC toy, not an embedded system. Using it for mission-critical embedded systems is probably criminal. Kind of the same situation as using some "lets play doctor" kit for kids in real medical surgery.
(more)
over 4 years ago
Comment Post #279081 @Martin Bonner MISRA-C covers array out of bounds access, see [Does MISRA check if array index out of bounds?](https://stackoverflow.com/questions/64800766/does-misra-check-if-array-index-out-of-bounds). A buffer overrun is a broader meaning though, it happens on the top application layer, such as sa...
(more)
over 4 years ago
Comment Post #278907 As for safety standards, the good ones focus on "what should we do when this error occurs" rather than "error must not happen". Of course you should prevent errors from happening, but you also need to have a plan of what to do when they happen anyway. This is where defensive programming saves the day...
(more)
over 4 years ago
Comment Post #278907 @Canina Yeah well, mainly "anecdotal" was a just a poor wording, "empirical evidence" is another thing entirely. That is, "I heard it from a guy on the internet" vs "I made field population studies of x cases".
(more)
over 4 years ago
Answer A: What is do { } while(0) in macros and should we use it?
The sole purpose of the `do { } while(0)` is to write macros that accommodates to all manner of diverse coding styles. It is quite common not to use braces after `if` statements, so this is a common coding style: if(bad) HCF(0xDEADBEEF); else printf("good"); If we only us...
(more)
over 4 years ago
Question What is do { } while(0) in macros and should we use it?
Background I can see the need to use `{ }` when implementing a function-like macro such as this one: #define HCF(code) fprintf(stderr, "halt and catch fire"); exit(code); Because if we use the following calling code bool bad = false; if(bad) HCF(0xDEADBEEF); print...
(more)
over 4 years ago
Edit Post #279291 Post edited:
over 4 years ago
Comment Post #279291 Disclaimer: I'm not a C++ guru and various subtle crap changed from C++11 and beyond. I _think_ I got the C++11 standard right and also that this part holds true for any version >= C++11.
(more)
over 4 years ago
Edit Post #279291 Initial revision over 4 years ago
Answer A: Static and thread_local initialization order
TL;DR The initialization of the variables `a` and `b` in your question are indeterminately sequenced in relation to each other. The initialization order is not guaranteed between them. The initialization rules of C++ are quite complex, especially past C++11. The relevant part would be C++11...
(more)
over 4 years ago
Edit Post #279081 Post edited:
over 4 years ago
Edit Post #279081 Initial revision over 4 years ago
Answer A: Is MISRA-C useful outside safety-critical and embedded programming?
It is true that MISRA-C has a heavy focus on embedded system, though it has become somewhat more generic over time. The MISRA guidelines have been changed and improved several times over the years (in 1998, 2004 and 2012 + numerous TC and addendum/amendments). They are now definitely general enough t...
(more)
over 4 years ago