What does this warning mean?
Code:
12.12.c:54: warning: initializer element is not computable at load time
12.12.c:54: warning: initializer element is not computable at load time
Look at the bolded code.
Code:
#include <stdio.h>
#include <stdlib.h>
struct stackNode {
char data;
struct stackNode *nextPtr;
};
typedef struct stackNode StackNode;
typedef StackNode *StackNodePtr;
void convertToPostfix( char infix[], char postfix[] );
//isOperator completed
int isOperator( char c );
//precedence completed
int precedence( char operator1, char operator2 );
void push( StackNodePtr *topPtr, char value );
char pop( StackNodePtr *topPtr );
char stackTop( StackNodePtr topPtr );
int isEmpty( StackNodePtr topPtr );
void printStack( StackNodePtr topPtr );
int main()
{
printf( "%d\n", precedence( '-', '^' ) );
// printf( "%d%10d\n%d%10d\n%d%10d\n%d%10d\n", precedence(
return 0;
}
int isOperator( char c )
{
if ( c == '(' || c == ')'
|| c == '+' || c == '-'
|| c == '*' || c == '/'
|| c == '^' || c == '%' )
return 1;
else
return 0;
}
//Determine if precedence of operator1 is greater(1), equal(0), or less then(-1) operator2
int precedence( char operator1, char operator2 )
{
int opValue[ 2 ] = { 0 };
char operator[ 2 ] = { operator1, operator2 };
int i = 0;
for ( i = 0; i < 2; ++i ) {
switch( operator[ i ] ) {
case '+': case '-':
opValue[ i ] = 1;
break;
case '*': case '/': case '%':
opValue[ i ] = 2;
break;
case '^':
opValue[ i ] = 3;
break;
case '(': case ')':
opValue[ i ] = 4;
break;
}
printf( "opValue[ %d ]: %d\n", i, opValue[ i ] );
}
if ( opValue[ 0 ] > opValue[ 1 ] )
return 1;
if ( opValue[ 0 ] == opValue[ 1 ] )
return 0;
if ( opValue[ 0 ] < opValue[ 1 ] )
return -1;
}