- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
switch(argCount)
{
case 0: sprintf(dst, fmt); break;
case 1: sprintf(dst, fmt, args[0]); break;
case 2: sprintf(dst, fmt, args[0], args[1]); break;
case 3: sprintf(dst, fmt, args[0], args[1], args[2]); break;
case 4: sprintf(dst, fmt, args[0], args[1], args[2], args[3]); break;
case 5: sprintf(dst, fmt, args[0], args[1], args[2], args[3], args[4]); break;
case 6: sprintf(dst, fmt, args[0], args[1], args[2], args[3], args[4], args[5]); break;
case 7: sprintf(dst, fmt, args[0], args[1], args[2], args[3], args[4], args[5], args[6]); break;
case 8: sprintf(dst, fmt, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); break;
...
j123123 15.01.2023 03:23 # 0
JloJle4Ka 15.01.2023 04:04 # 0
guest6 15.01.2023 07:56 # +1
напиши пожалуйста sprintf на асемблере.
или ты просто про вызов готового? тогда простота зависит от колконвеншена
o6AMa_4MO 15.01.2023 08:26 # +1
nPOnOBeDHuK 15.01.2023 19:48 # 0
inkanus_gray 17.01.2023 00:43 # 0
JloJle4Ka 23.01.2023 12:19 # −1
1. Restrict to simple control flow constructs. Do not use goto statements, setjmp, longjmp, or recursion.
2. Give all loops a fixed upper-bound.
3. Do not use dynamic memory allocation after initialization.
4. Limit functions to no more than 60 lines of text.
5. Use minimally 2 assertions for every function of more than 10 lines.
6. Declare data objects at the smallest possible level of scope.
7. Check the return value of all non-void functions, and check the validity of all function parameters.
8. Limit the use of the preprocessor to file inclusion and simple macros.
...
9. Limit the use of pointers. Use no more than 1 level of dereferencing per expression.
10. Compile with all warnings enabled, in pedantic mode, and use one or more modern static source code analyzers.
guest6 23.01.2023 15:57 # −1
3.14159265 24.01.2023 07:18 # −1
Ну это хамство. Или я чего-то не понял.
Остальное звучит вполне здраво.
bormand 24.02.2023 09:24 # −2
Нямёк на то, что заранее выделенные буфера и пулы всегда работают надёжнее и быстрее, чем динамический аллокатор.
Support 24.02.2023 14:46 # +5
inkanus_gray 25.02.2023 16:13 # −1
Soul_re@ver 24.02.2023 14:56 # 0
CBuHOKYP 24.02.2023 16:19 # 0
bormand 24.02.2023 20:45 # 0
JloJle4Ka 25.02.2023 02:53 # 0
bormand 25.02.2023 05:44 # 0
JloJle4Ka 25.02.2023 05:53 # 0
bormand 25.02.2023 07:00 # +1
Soul_recOver 01.03.2023 12:34 # +1
guesf6 01.03.2023 12:44 # 0
HoBorogHuu_nemyx 01.03.2023 12:44 # 0
guesf6 01.03.2023 12:47 # 0
IloJIe4Ka 01.03.2023 12:49 # 0
Даже если это и паскаль, то с какими-то флагами.
o6AMa_4MO 01.03.2023 12:52 # 0
guesf6 01.03.2023 12:54 # 0
bormand 24.02.2023 16:53 # 0
Fixed.
hormand 24.02.2023 17:18 # 0
guest6 01.03.2023 00:47 # 0
case 9: sprintf(dst, fmt, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]); break;