ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Difference between Error and Warning during program compilation

Updated on June 16, 2015


When a program is written using some programming language, the program is first compiled before execution. Compiler checks the presence of error in the program. If the program is error free, then the compiler generates executable code. During compilation process, sometime we get "error" or "warning" messages. To execute the program and to get the correct result from the program, all the issues related to those errors and warnings must be resolved.

What is compilation ?

Compiler is a program which converts a program written in high level language to a code in a low level language. This translation is must because, computer do not understand high level programming languages. Computer only understands low level language like assembly language.

Once we have written the program using high level language, to execute the program we have to get the equivalent code in low level language. So first we have to compile the program. As a part of compilation process, the compiler check the errors in the program. Because, compiler will generate the code only if the program is error free.

What is debugging ?

Bug in the program relates to some error in the program. Debug means to remove errors. Debugging is the process of removing the errors from the program code.

Difference between error and warning

During the compilation process the compiler may give some error messages and/or some warning messages.

When we write programs using a programming language, we have to abide by the syntax and semantics of the programming language. Syntax and semantics are nothing but the rules of the programming language. Just like any language, programming languages also have their grammar and meaning of the statements.

If the grammar is violated in a program, then the compiler will generate error message. If any error is occurred during the compilation process, the compiler will not generate the executable output code. So the program can't be executed in this case.

If any type of semantic error is there in the program, then the compiler will generate warning message. If the compiler generate warning message, then the compiler may generate the output executable code. But this executable code, when executed, may not give the correct output/result.

All of us know that 5+5 will give 10. But if a statement is given, say "5+5=20" and you are asked whether this statement is correct or incorrect, then definitely you will say ERROR. The reason is, you know the fact. The same way, in the grammar of the programming language so many facts on the style of writing a program is given. So if we violate such things in the program, the compiler will give error message.

Suppose you have no idea about factorial. You are asked to say whether 5!=4511 is correct or some error is there. You will say " May be correct" or " May be wrong ". You will get confused if you have no idea of factorial. So in this case you can't say the statement is incorrect. The same way if we have written something in the program, which is not known to the compiler, then the compiler will generate warning message. Generally warnings are associated with some logical errors.

Example for Error message

We know that the following rule or grammar for assignment statement is defined in any programming language

<variable name > =< value > or < variable > or < expression >

In the assignment statement, the lvalue ( on the left side of the assignment operator )always contains a variable, where as the rvalue ( on the right side of the assignment operator ) may be a value or variable or an expression.

So the following statements are correct according to the above rule and compiler will not generate any error message:




But if following statements are written, then the compiler will definitely generate error message, since the above rules are violated.



Example for Warning Message

Now consider the if statement: the rule is as follows:

if ( condition )

then executable statement;

In a program the condition is nothing but value generated by an logical expression which involves the logical operators like <, >, <=, >=, == or !=. So if the following statement is written, the compiler will not generate any error message and also the compiler will not generate any warning as the rule is strictly followed. No rule says which operator to use in the condition.

if( n<=10)

printf("\nHello World.");

In the condition part, the compiler needs an integer value so n<=10 will return an integer value and hence the according to rule the statement is correct.

Now consider the following statement:

if( n=10)

printf("\nHello World");

Now the compiler will get confused with the condition given in the if statement. Rule says, that there we need to give logical expression and the logical expression will finally generate an integer. But here in this case no logical expression is given, but still the given expression will finally generate integer value. Since the if statement is getting the desired integer without the logical expression, the compiler will get confused and instead of generating error message, it will generate a warning message.


    0 of 8192 characters used
    Post Comment

    No comments yet.


    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at:

    Show Details
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the or domains, for performance and efficiency reasons. (Privacy Policy)
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)