help with #define in C


 
Thread Tools Search this Thread
Top Forums Programming help with #define in C
# 1  
Old 03-29-2011
Error help with #define in C

if i do this in C
Code:
#define NUM 1234512345

then how come i cant print it out using
Code:
int main(int argc, char **argv) {
    printf("%d\n", NUM);
    return 0;
}

well the result is -1219236538, why isnt it 1234512345 ?
# 2  
Old 03-29-2011
There's nothing wrong with what you posted.

Could you paste the whole, unmodified program instead?
# 3  
Old 03-29-2011
thats basically the whole file...

except with the
#include <stdio.h>

Code:
#include <stdio.h>
#define NUM 1234512345
int main(int argc, char **argv) {     
     printf("%d\n", NUM);     
     return 0; 
}

perhaps i need something like %l because its a long number?
# 4  
Old 03-29-2011
It can't be identical to the code you posted because the code you posted works.

The number's small enough to fit in a normal 32-bit integer.

Copy-paste this into your shell.
Code:
cat <<EOF > num.c
#define NUM 1234512345
#include <stdio.h>
int main(int argc, char **argv) {
    printf("%d\n", NUM);
    return 0;
}
EOF

gcc num.c -o num
./num

# 5  
Old 03-29-2011
huh, its working now...
# 6  
Old 03-29-2011
I suspect you did something like printf("%d\n"); and forgot to put NUM in there, but I can only guess since you didn't post the original...

Please don't post partial programs or altered programs or paraphrased programs. Computers are completely literal-minded and may do something different with an even slightly different program.
# 7  
Old 03-29-2011
no the error is still there, now i am trying header files
Code:
#include <stdio.h>
#include <stdlib.h>
#include "no.h"
int main(int argc, char **argv) {
    printf("%d\n",NUM);
    return 0;
}

no.h
Code:
#define NUM 1234512345

and i get -1219236538

edit: wait i gotto check something
edit2: nvm still error

---------- Post updated at 06:01 PM ---------- Previous update was at 05:55 PM ----------

strange, when i change the number to 1000000000, it comes out ok

so if i go over a certain number i get these warnings
warning: this decimal constant is unsigned only in ISO C90
warning: format â%dâ expects type âintâ, but argument 2 has type âlong unsigned intâ

this is for when i try 4000000000, how do i get it to still print 4000000000?
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Define Variables

Hi, I just define the variable in script and use those script in another script but the variable not recognize. test1.sh #!/bin/bash DB="test_db" USR="test_user" PWD="test_pwd" HST="24.254.87.12" test2.sh #!/bin/bash ./test1.sh mysql -u $USR -p $PWD -h $HST... (2 Replies)
Discussion started by: fspalero
2 Replies

2. Programming

When to define functions in C?

Hey everyone. So I'm looking at a few C programming resources, and it seems, by convention how you should write and define a function, is first declare it's existence before your main...then call it somewhere in your main, and then define after, at the end of the program? Is this necessary? I mean... (7 Replies)
Discussion started by: Lost in Cyberia
7 Replies

3. Programming

#define in c

Hi, I had a head file, looks like #define MIN_NUM 10 #define MAX_NUM 10 is there any way to get "MAX_NUM" from 10? thanks. peter (9 Replies)
Discussion started by: laopi
9 Replies

4. Programming

#define

Hello, I would like to conditionaly comment in my code source some fields from arrays. So I use the property ## from the #define definition. my code: ... #define slet /##* #define etsl *##/ ... const T_SVT_ADLL_A653_DESC A_DESC = { { slet qwerty etsl SLICING,... (3 Replies)
Discussion started by: cypleen
3 Replies

5. Shell Programming and Scripting

bash - define a variable

Hello, I would like to define a variable based on another variable: a=5 b$a=100 This does not work. What is the right way to do it? Thanks ---------- Post updated at 07:37 PM ---------- Previous update was at 07:33 PM ---------- Found my answer with the search function (did not... (0 Replies)
Discussion started by: jolecanard
0 Replies

6. Programming

How to define a very big matrix in C?

Hello!! I need to do some performance test using a very big matrix (bi-dimensional array) but I have problems with this. Is there any limitation in declarations? because if I do this: int matriz; It just don't work... it compiles but when i run the program it just closes. Where can i... (4 Replies)
Discussion started by: Sandia_man
4 Replies

7. UNIX for Dummies Questions & Answers

#define in perl

Hi friends, I am not sure if perl questions can be raised here. :rolleyes: But I have a doubt if there is a way to do "#define" in perl, like in C. Does anyone know if it is feasible (without CPAN modules)? Thanks, Srini (7 Replies)
Discussion started by: srinivasan_85
7 Replies

8. Programming

mysterious #define

in the header file orville.h, outside of the #ifdef #endif , there is the following #define JOB_CONTROL /* support job-control */ As you can see, the JOB_CONTROL macro has no value associated with it. Here is what I go when I ran grep on the entire source code. $ grep -iR... (6 Replies)
Discussion started by: frequency8
6 Replies
Login or Register to Ask a Question