दिलचस्प पोस्ट
हमें ट्रान्सैक्शन के लिए स्प्रिंग एमवीसी नियंत्रक क्यों नहीं बनाना चाहिए? संदर्भ प्रकार चर रीसाइक्लिंग – एक नया संदर्भ चर एक पाश में हर लूप बनाया है अगर उसमें घोषित किया गया है? रैवल्यूज़, लावल्यूस, एक्सवल्यूज, ग्लुवेल और प्रोजेल्स क्या हैं? एक ज़िम्मेदार संख्या तक गिना जाने के लिए jQuery काउंटर जावास्क्रिप्ट में दिनांक के बीच अंतर टीएसक्यूएल: स्थानीय समय को यूटीसी में कनवर्ट कैसे करें? (SQL सर्वर 2008) एसक्यूएल सर्वर डेराटाइम के लिए वर्चार कन्वर्ट "इंडेन्टेशन में टैब और रिक्त स्थान का असंगत उपयोग" इंटरफ़ेस के खिलाफ प्रोग्रामिंग के द्वारा डाटा जारी रखें क्या इस साधारण 'डबल' गणना के साथ गलत है? यदि प्रोफाइलर का जवाब नहीं है, तो हमारे पास अन्य विकल्प क्या हैं? क्लिक पर ट्विटर बूटस्ट्रैप एप पतन छुपाएं विजुअल स्टूडियो 2015 अतिरिक्त डीबग विकल्प को अक्षम करें पूर्ण स्थिति के भीतर पूर्ण स्थिति अक्षर एन टाइम्स दोहराएं

क्या बूल एक देशी सी प्रकार है?

मैंने देखा है कि लिनक्स कर्नल कोड bool का उपयोग करता है, लेकिन मैंने सोचा था कि bool एक C ++ प्रकार था। क्या बूल एक मानक सी एक्सटेंशन (जैसे आईएसओ सी 90) या जीसीसी एक्सटेंशन है?

Solutions Collecting From Web of "क्या बूल एक देशी सी प्रकार है?"

bool वर्तमान सी में मौजूद है – C99, लेकिन C89 / 90 में नहीं

C99 में मूल प्रकार को वास्तव में _Bool कहा जाता है, जबकि bool एक मानक पुस्तकालय मैक्रो है जिसे stdbool.h में परिभाषित किया stdbool.h (जो अपेक्षित रूप से _Bool को हल करता है)। प्रकार के ऑब्जेक्ट्स _Bool को 0 या 1 को पकड़ो, जबकि true और false भी stdbool.h से मैक्रो हैं।

C99 ने एक अंतर्निहित _Bool डेटा प्रकार जोड़ा (विवरण के लिए विकिपीडिया देखें), और यदि आप #include <stdbool.h> , तो यह _Bool को मैक्रो के रूप में _Bool को प्रदान करता है।

आपने विशेष रूप से लिनक्स कर्नेल के बारे में पूछा यह _Bool की उपस्थिति को ग्रहण करता है और इसमें / linux / types.h में शामिल किए गए एक bool _Bool प्रदान करता है।

नहीं, आईएसओ सी 90 में कोई bool नहीं है।

मानक सी (नहीं, C99) में कीवर्ड की एक सूची है:

  • auto
  • break
  • case
  • char
  • const
  • continue
  • default
  • do
  • double
  • else
  • enum
  • extern
  • float
  • for
  • goto
  • if
  • int
  • long
  • register
  • return
  • short
  • signed
  • static
  • struct
  • switch
  • typedef
  • union
  • unsigned
  • void
  • volatile
  • while

कर्नेल और मानक में उपयोग किए जाने वाले सी के साथ कुछ अन्य मतभेदों पर चर्चा करते हुए यह एक लेख है: http://www.ibm.com/developerworks/linux/library/l-gcc-hacks/index.html

सी 99 में यह stdbool.h में है , लेकिन C90 में इसे टाइप-फेफ़ या एन्यूम के रूप में परिभाषित किया जाना चाहिए:

 typedef int bool; #define TRUE 1 #define FALSE 0 bool f = FALSE; if (f) { ... } 

वैकल्पिक रूप से:

 typedef enum { FALSE, TRUE } boolean; boolean b = FALSE; if (b) { ... } 
 /* Many years ago, when the earth was still cooling, we used this: */ typedef enum { false = ( 1 == 0 ), true = ( ! false ) } bool; /* It has always worked for me. */ 

_Bool C99 में एक कीवर्ड है: यह एक प्रकार निर्दिष्ट करता है, जैसे कि int या double

6.5.2

2 प्रकार के रूप में घोषित ऑब्जेक्ट _Bool 0 और 1 के मानों को स्टोर करने के लिए काफी बड़ा है।

सी 99 परिभाषा bool, true और false stdbool.h

stdbool.h c99 में पेश किया गया था

ऐसी कोई चीज नहीं है, संभवतः केवल int के लिए मैक्रो

stdbool.h मैक्रोज़ सही और झूठी परिभाषित करता है, लेकिन याद रखना कि यह 1 और 0 होने के लिए परिभाषित है।

यही कारण है कि sizeof(true) 4 है।