Package: gcc
Version: 4:4.6.3-8
Using Debian Wheezy with Raspberry Pi.
The 'newline' characters (\n) seem to have an effect on compilation.
I have used three test programs:
test1.c
#include <stdio.h>
#include <time.h>
float delay(float time_delay)
{
float time1,time2;
time1 = clock()/CLOCKS_PER_SEC;
time2 = clock()/CLOCKS_PER_SEC;
while (time1 < time2 + time_delay)
{
time1 = clock()/CLOCKS_PER_SEC;
}
return time1;
}
main()
{
int i;
float print_time;
float delay_time = 2.0;
for (i=1;i<=3;i++)
{
printf("Loop number %d",i);
printf("*")
print_time = delay(delay_time);
printf(" * Time = %1.3f",print_time);
}
}
What I think should happen:
1. print "Loop number 1"
2. print "*"
3. wait 2 seconds
4. print " * Time = 2.000"
5. print "Loop number 2"
6. print "*"
7. wait 2 seconds
8. print " * Time = 4.000
Etc
What actually happens:
1. delay 6 seconds
2. print "Loop number1* * Time = 2.000Loop number2* * Time =
4.000Loop number3* * Time = 6.000"
test2.c is exactly the same as test1.c with one exception: the last printf()
has a new line character.
What I think should happen:
1. print "Loop number 1"
2. print "*"
3. wait 2 seconds
4. print " * Time = 2.000"
5. newline
6. print "Loop number 2"
7. print "*"
8. wait 2 secons
9. print " * Time = 4.000"
10. newline
Etc
What actually happens:
1. wait 2 seconds
2. print "Loop number1* * Time = 2.000"
3. newline
4. wait 2 seconds
Etc
test3.c is exactly the same as test2.c with one exception: the printf("*")
is replaced by printf("*\n")
The program now runs as expected.
------------------------------------------------------------------
Wendy and Dennis Butler
+61 (0)3 63 272425 (Home)
+61 (0)427 242524 (Wendy mobile)
+61 (0)448 272425 (Dennis mobile)