ሊኑክስ 5.18 ከርነል የC11 ቋንቋ ደረጃን ለመጠቀም አቅዷል

በተገናኘው የዝርዝር ኮድ ውስጥ ከስፔክተር ጋር የተገናኙ ችግሮችን ለማስተካከል የፕላቸሮች ስብስብ ሲወያይ፣ አዲሱን የስታንዳርድ ስሪት የሚያከብር C ኮድ ወደ ከርነል ከተፈቀደ ችግሩ የበለጠ በጸጋ ሊፈታ እንደሚችል ግልጽ ሆነ። በአሁኑ ጊዜ፣ የተጨመረው የከርነል ኮድ በ89 የተቋቋመውን ANSI C (C1989) ዝርዝር ማክበር አለበት።

በኮዱ ውስጥ ያለው ከስፔክተር ጋር የተያያዘ ችግር የተፈጠረው ከሉፕ በኋላ በተለየ የተገለጸ ተደጋጋሚ አጠቃቀም ነው - ማክሮ በተገናኘው ዝርዝር ውስጥ ያሉትን ንጥረ ነገሮች ለመድገም ጥቅም ላይ ይውላል ፣ እና የ loop ተደጋጋሚው ወደዚያ ማክሮ ስለገባ ፣ ከሉፕ እራሱ ውጭ ይገለጻል እና ከሉፕ በኋላ ይገኛል። የC99 ስታንዳርድን መጠቀም የ loop ተለዋዋጮች በ for() ብሎክ ውስጥ እንዲገለጹ ያስችላቸዋል፣ይህም መፍትሄ ማምጣት ሳያስፈልገው ችግሩን ይፈታል።

ሊነስ ቶርቫልድስ ለአዳዲስ ዝርዝር መግለጫዎች ድጋፍን ተግባራዊ ለማድረግ ሀሳቡን ተስማምቷል እና በ 5.18 የታተመውን የ C11 መስፈርት ለመጠቀም 2011 ከርነል እንዲንቀሳቀስ ሀሳብ አቀረበ። በቅድመ ሙከራ ወቅት፣ በጂሲሲ እና በክላንግ ውስጥ ያለው ስብሰባ በአዲሱ ሁነታ ያለ ምንም ልዩነት አልፏል። በጥልቅ ፍተሻ ወቅት ያልተጠበቁ ችግሮች ካልተከሰቱ የ'--std=gnu5.18' አማራጭ በ'--std=gnu89 -Wno-shift-negative-value' በ11 የከርነል ግንባታ ስክሪፕቶች ይተካል። የ C17 ደረጃን የመጠቀም እድልም ግምት ውስጥ ገብቷል, ነገር ግን በዚህ ሁኔታ ዝቅተኛውን የሚደገፍ የጂ.ሲ.ሲ. ስሪት መጨመር አስፈላጊ ይሆናል. የC11 ድጋፍን ማካተት አሁን ካለው የጂሲሲ ስሪት (5.1) መስፈርቶች ጋር ይጣጣማል።

ምንጭ: opennet.ru

አስተያየት ያክሉ