در جواب قسمت اول: در استاندارد C90 چیزی به نام bool وجود نداشته و میشده از int به جای bool استفاده کرد یا یه enum تعریف کرد.
در استاندارد C99 نوع _Bool اضافه شده که با اتصال سرفایل stdbool.h از bool استفاده کرد.
اما در C++ نوع دادهی استاندارد و جداگانهای به نام bool تعریف شده که جزو کلیدواژههای زبان هست. این تفاوت نوع داده بولین در این دو زبان.
برای قسمت دوم یه روشی هست که میشه از یه بیت برای این کار استفاده کرد. استفاده از bitset. اما به هر حال سرعت اجرای برنامه اگه کمتر نشه بیشتر نمیشه.
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)