Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 114845
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T02:55:31+00:00 2026-05-11T02:55:31+00:00

My compiler (VC++ 6.0 sp6) has apparently gone insane. In certain pieces of code

  • 0

My compiler (VC++ 6.0 sp6) has apparently gone insane. In certain pieces of code I’m seeing that ‘bool mybool = true;‘ evalutes to and assigns false, and vice versa for true. Changing the true/false keywords to 1/0 makes it work fine. The same code compiles elsewhere fine without changing the true/false keywords.

What could possibly cause this? My first thought was RAM or disk corruption, but that all checked out fine. I’m not far from reformatting my drive and reinstalling everything, but I’m terrified I’d still see the same misbehavior.

Is it even technically possible for a macro or linked-in library somewhere to screw up the meaning of ‘true‘ and ‘false‘?

UPDATE: Mystery solved. An environment variable flag on my machine was set to ‘false’ and the way this was interpolated by some preprocessor code redefined the keyword.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T02:55:32+00:00Added an answer on May 11, 2026 at 2:55 am

    A preprocessor macro could certainly do it, although that would be pretty surprising. One way to check if that is the case would be

    #ifdef true #  error 'true is defined as a macro' #endif #ifdef false #  error 'false is defined as a macro' #endif 

    Response to comments:

    Find a non-header file where you see this behavior, preferably one with few #includes.

    In the middle of the list of includes, put the #ifdef #error directives.

    if the error trips you know it’s in the first half of includes, if it doesn’t it’s in the second half. Split the half in half and repeat. When you narrow it down to one header, open that header. If that header includes any headers repeat the process for the list of headers it includes. Eventually you should be able to find the #defines . Tedious, I agree.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

My compiler expands it to 199711L. What does that mean? I read that __cplusplus
The compiler complains about this code: HashMap<String,int> userName2ind = new HashMap<String,int>(); for (int i=0;
The compiler, given the following code, tells me Use of unassigned local variable 'x'.
Compiler deal with source code as strings so in C++ for example when it
I have this compiler error (C2011) with this piece of code. I don't know
Anybody has idea why compiler can't cast value '7' in 'short'? explicit casting is
Compiler: Code::Blocks(GNU GCC) Platform: Windows(x86) Includes: winsock.h winsock2.h (ws2_32 is linked as well) I
compiler: http://code.google.com/p/go/downloads/detail?name=go1.0.3.windows-386.zip&can=2&q= I've unpacked it to d:\ , then made another directory d:\testgo ,
Compiler:gcc 4.5.2 Terminal:Xterm OS:Linux(x86) Ncurses 5.9 I am programming a text editor that uses
Custom Compiler Warnings and C#: Create custom warning in Visual Studio if certain method

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.