Download Pelles C here: http://www.pellesc.se
Quote from: John Z on March 09, 2026, 09:56:30 AMHi ander,thank you for test.
I could not reproduce this. With the setvbuf 1000, 5000, 7000, or not even use setvbuf it always ends the loop on 20000 . I just pasted your code in.19998
19999
20000
Press any key to continue...
John Z
#include <stdio.h>
int main(void)
{
setvbuf(stdout, NULL, _IOFBF, 7000);
for (int i = 0; i < 20001; i++)
printf("%d\n", i);
return 0;
}You cannot view this attachment.Quote from: John Z on March 08, 2026, 09:26:14 PM👍👍👍
Definitely! Thanks Timo.
Better output too -long int a = 65536;
long int b = 65535;//10
int c = 0;
---------output---------
result: true c = -65536
result: false c = 131071
result: false c = 1
Press any key to continue...
John Z
#include <stdio.h>
#include <stdckdint.h>
int main(void)
{
int a = 655350;
int b = 10;
short int c = 0;
bool result = true;
result = ckd_add(&c, a, b); //out of range of short. a and b are int, c is short int.
if (result == true)
{
puts("true");
}else{
puts("false");
}
printf("c = %d ", c);
return 0;
}
Quote from: TimoVJL on March 08, 2026, 03:10:42 PMhttps://cppreference.net/c/numeric/ckd_mul.htmlthank you for your reply, TimoVJL. I have read it. please try my test code.
#include <stdio.h>
#include <stdckdint.h>
int main(void)
{
int a = 655350;
int b = 10;
short int c = 0;
bool result = true;
result = ckd_add(&c, a, b); //out of range of short. a and b are int, c is short int.
if (result == true)
{
puts("true");
}else{
puts("false");
}
printf("c = %d ", c);
return 0;
}
#include <stdio.h>
#include <stdckdint.h>
char *ab[] = {"false", "true "};
int main(void)
{
long int a = 655350;
long int b = 655350;//10
int c = 0;
bool result;
result = ckd_mul(&c, a, b); // ckd_add(&c, a, b); ckd_sub(&c, a, b);
printf("result: %s c = %d\n", ab[result], c);
result = ckd_add(&c, a, b); // ckd_sub(&c, a, b);
printf("result: %s c = %d\n", ab[result], c);
result = ckd_sub(&c, a, b);
printf("result: %s c = %d\n", ab[result], c);
return 0;
}
#include <stdio.h>
#include <stdckdint.h>
int main(void)
{
long int a = 655350;
long int b = 655350;//10
int c = 0;
//int c = 0;
bool result = true;
result = ckd_mul(&c, a, b); // ckd_add(&c, a, b); ckd_sub(&c, a, b);
if (result == true) {
puts("true\n");
}else{
puts("false\n");
}
printf("c = %d\n", c);
result = ckd_add(&c, a, b); // ckd_sub(&c, a, b);
if (result == true) {
puts("true\n");
}else{
puts("false\n");
}
printf("c = %d\n", c);
result = ckd_sub(&c, a, b);
if (result == true) {
puts("true\n");
}else{
puts("false\n");
}
printf("c = %d\n", c);
return 0;
}Page created in 0.069 seconds with 18 queries.