- cross-posted to:
- programmer_humor@programming.dev
- cross-posted to:
- programmer_humor@programming.dev
- Strictly speaking, it should be - Unsafe block syntax in C++ - { ...}
- That is why I use just - int main(){...}without arguments instead.- Any - void main(){...}enjoyers?- deleted by creator - @stebo02 @Bogus5553 Neither of them require a return value, but - void mainisn’t legal C++.- deleted by creator - void main(){...}is not in the standard, but works on both MSVC and GCC (with warnings). I think it works on both C/C++, but you really shouldn’t use it in production. Just use- int main(void){...}, without any return value, which is permitted in the standard, and will return success iirc.
 
 
- It will also give an error if you try to add a return value anyways. 
 
- while (true) {...}
- int main(void) { . . . }for me!
 
- Very true, the less user input you have the safer your code will be. 
 
- Safe code is a skill, not a feature. 
- i will never forgive C for making the type syntax be - char* args[]- instead of the much more reasonable - &[char] args- it also bothers me that - char* args[]and- char care “the same type” in the sense that the compiler lets you write- char c, *args[5];- with no problems. i think the C languages would be way easier to learn if they had better type syntax. don’t even get me started on C++ adding support for - auto fn_name() -> ReturnType { … }- @affiliate Hey, you didn’t even mention that - char *args[]actually means- char **argsin a parameter list.- god, what a beautiful language. it brings a tear to my eye - I personally think that C++ can be beautiful. For example: - std::filesystem::pathoverrides the- /operator, for specifying parent paths. It’s the same as Kotlin’s OKIO and Pythons standard pathlib.
 
- It could, but not necessarily. - char **argscan just mean you have a pointer which points to an address, and at that address, you can get a second address. Follow the second address, there is a- charsaved there.- On the other hand, - char *args[]means " follow this address to find a list of characters".- @racketlauncher831 As far as the C compiler is concerned, there is literally no difference between those two notations. If you declare a function parameter as an array (of T), the C compiler automatically strips the size information (if any) and changes the type to pointer (to T). - (And if we’re talking humans, then - char *args[]does not mean “follow this address to find a list of characters” because that’s the syntax for “array of pointers”, not “pointer to array”.)
 
 
 
- counterpoint: all code is unsafe. retvrn to abacuses - But I was hit over the head with one, that wasn’t safe either! 
 





