คำถามติดแท็ก standards

มาตรฐานได้รับการเผยแพร่อย่างเป็นทางการหรือได้รับการยอมรับอย่างดีเกี่ยวกับรูปแบบขั้นตอนหรือโปรโตคอล อนุญาตให้บุคคลหรือองค์กรทำงานร่วมกันโดยกำหนดกฎเกณฑ์พื้นฐานหรือขอบเขต มาตรฐานมักจะมาพร้อมกับเงื่อนไขเบื้องต้นหรือสมมติฐานซึ่งช่วยให้ผู้ทำงานร่วมกันถือเอาเงื่อนไขหรือสมมติฐานเหล่านั้นเป็นความจริงพื้นฐาน

8
“ argv [0] = name-of-executable” เป็นมาตรฐานที่ยอมรับหรือเป็นเพียงแบบแผนทั่วไป
เมื่อส่งอาร์กิวเมนต์ไปยังmain()แอปพลิเคชัน C หรือ C ++ จะargv[0]เป็นชื่อของไฟล์ปฏิบัติการเสมอ? หรือนี่เป็นเพียงอนุสัญญาทั่วไปและไม่รับประกันว่าจะเป็นจริง 100% ของเวลา?
104 c++  c  standards  argv 

6
วิธีที่สะอาดในการเปิดเว็บเบราว์เซอร์จากเชลล์สคริปต์?
ในสคริปต์ทุบตีฉันต้องเปิดเว็บเบราว์เซอร์ของผู้ใช้ ดูเหมือนจะมีหลายวิธีในการทำสิ่งนี้: $BROWSER xdg-open gnome-open บน GNOME www-browser x-www-browser ... มีวิธีที่เป็นมาตรฐานมากกว่าวิธีอื่นในการทำเช่นนี้ที่ใช้ได้กับแพลตฟอร์มส่วนใหญ่หรือไม่หรือฉันควรทำสิ่งนี้: #/usr/bin/env bash if [ -n $BROWSER ]; then $BROWSER 'http://wwww.google.com' elif which xdg-open > /dev/null; then xdg-open 'http://wwww.google.com' elif which gnome-open > /dev/null; then gnome-open 'http://wwww.google.com' # elif bla bla bla... else echo "Could not detect the web browser …

5
<nav> หรือ <เมนู> (HTML5)
W3Schools.com และฉันค่อนข้างแน่ใจว่าฉันจำได้ว่าเห็นสถานะ W3C.org ที่&lt;menu&gt;ควรใช้สำหรับเมนู Toolbar และแสดงรายการคำสั่งควบคุมฟอร์ม ฉันควรใช้เมนูใดในเมนูหลัก Nav, หรือMenu? มันสำคัญหรือไม่?
102 html  menu  standards  nav 

12
การตรวจสอบอาร์เรย์ว่าง: count vs empty
คำถามเกี่ยวกับ ' จะทราบได้อย่างไรว่าอาร์เรย์ PHP ว่างเปล่า ' ทำให้ฉันนึกถึงคำถามนี้ มีเหตุผลที่countควรใช้แทนemptyเมื่อพิจารณาว่าอาร์เรย์ว่างหรือไม่? ความคิดส่วนตัวของฉันคือถ้า 2 เทียบเท่ากับกรณีของอาร์เรย์ว่างที่คุณควรใช้emptyเพราะมันให้คำตอบแบบบูลีนสำหรับคำถามบูลีน จากคำถามที่เชื่อมโยงข้างต้นดูเหมือนว่าcount($var) == 0จะเป็นวิธีที่นิยม สำหรับฉันในขณะที่ความถูกต้องทางเทคนิคก็ไม่สมเหตุสมผล เช่นQ: $ var คุณว่างไหม ตอบ: 7 . อืม ... มีเหตุผลที่ฉันควรใช้count == 0แทนหรือแค่เรื่องรสนิยมส่วนตัว? ตามที่ผู้อื่นระบุไว้ในความคิดเห็นสำหรับคำตอบที่ถูกลบไปแล้วcountจะมีผลกระทบต่อประสิทธิภาพสำหรับอาร์เรย์ขนาดใหญ่เนื่องจากจะต้องนับองค์ประกอบทั้งหมดในขณะที่emptyสามารถหยุดได้ทันทีที่รู้ว่าไม่ว่างเปล่า ดังนั้นหากให้ผลลัพธ์เหมือนกันในกรณีนี้ แต่countอาจไม่มีประสิทธิภาพทำไมเราถึงใช้count($var) == 0?

1
จุดต้องถูกหลีกเลี่ยงในคลาสอักขระ (วงเล็บเหลี่ยม) ของนิพจน์ทั่วไปหรือไม่?
จุด.ในนิพจน์ทั่วไปจะจับคู่อักขระเดี่ยว ๆ เพื่อให้ regex จับคู่จุดจุดจะต้องมีการหลีกเลี่ยง:\. มีการชี้ให้ฉันเห็นว่าภายในวงเล็บเหลี่ยม[]ไม่จำเป็นต้องหลบหนี ตัวอย่างเช่นนิพจน์: [.]{3}จะจับคู่...สตริง มันไม่จริงเหรอ? และถ้าเป็นเช่นนั้นจริงสำหรับมาตรฐาน regex ทั้งหมดหรือไม่?

6
ความยาวการคำนวณของสตริง C ในเวลาคอมไพล์ นี่คือ constexpr จริงๆหรือ?
ฉันกำลังพยายามคำนวณความยาวของสตริงลิเทอรัลในเวลาคอมไพล์ ในการทำเช่นนั้นฉันใช้รหัสต่อไปนี้: #include &lt;cstdio&gt; int constexpr length(const char* str) { return *str ? 1 + length(str + 1) : 0; } int main() { printf("%d %d", length("abcd"), length("abcdefgh")); } ทุกอย่างทำงานตามที่คาดไว้โปรแกรมจะพิมพ์ 4 และ 8 รหัสแอสเซมบลีที่สร้างขึ้นโดยเสียงดังแสดงว่าผลลัพธ์ถูกคำนวณในเวลาคอมไพล์: 0x100000f5e: leaq 0x35(%rip), %rdi ; "%d %d" 0x100000f65: movl $0x4, %esi 0x100000f6a: movl $0x8, %edx 0x100000f6f: …

3
มีเครื่องจักรที่ sizeof (ถ่าน)! = 1 หรืออย่างน้อย CHAR_BIT> 8 หรือไม่
Наэтотвопросестьответына Stack Overflow нарусском : Кто-нибудьвстречалвсвоейпрактике sizeof (ถ่าน)! = 1? มีเครื่องจักร (หรือคอมไพเลอร์) อยู่ที่ไหนsizeof(char) != 1? ไม่มาตรฐาน C99กล่าวว่าsizeof(char)ในการดำเนินการปฏิบัติตามมาตรฐานต้องเป็น 1? ถ้าเป็นเช่นนั้นโปรดให้หมายเลขมาตราและการอ้างอิง อัปเดต: หากฉันมีเครื่อง (CPU) ซึ่งไม่สามารถระบุไบต์ได้ (อ่านน้อยที่สุดคือ 4 ไบต์จัดแนว) แต่มีไบต์เพียง 4 วินาที ( uint32_t) คอมไพเลอร์สำหรับเครื่องนี้สามารถกำหนดsizeof(char)เป็น 4 ได้หรือไม่ sizeof(char)จะเป็น 1 แต่ถ่านจะมี 32 บิต ( CHAR_BITมาโคร) Update2: แต่ขนาดของผลลัพธ์ไม่ใช่ไบต์! มีขนาดเท่ากับ CHAR และถ่านสามารถเป็น 2 ไบต์หรือ (อาจเป็น) 7 …
93 c  char  standards  sizeof  c99 

9
แอตทริบิวต์ที่ไม่ได้มาตรฐานบนแท็ก HTML สิ่งที่ดี? สิ่งที่ไม่ดี? ความคิดของคุณ?
HTML (หรืออาจเป็นเพียง XHTML?) ค่อนข้างเข้มงวดเมื่อพูดถึงแอตทริบิวต์ที่ไม่ได้มาตรฐานบนแท็ก หากไม่ได้เป็นส่วนหนึ่งของข้อมูลจำเพาะรหัสของคุณจะถือว่าไม่เป็นไปตามข้อกำหนด อย่างไรก็ตามแอตทริบิวต์ที่ไม่ได้มาตรฐานมีประโยชน์พอสมควรสำหรับการส่งผ่านข้อมูลเมตาไปยัง Javascript ตัวอย่างเช่นหากสมมติว่าลิงก์แสดงป๊อปอัปคุณสามารถตั้งชื่อป๊อปอัปในแอตทริบิวต์: &lt;a href="#null" class="popup" title="See the Popup!" popup_title="Title for My Popup"&gt;click me&lt;/a&gt; หรือคุณสามารถจัดเก็บหัวเรื่องสำหรับป๊อปอัปในองค์ประกอบที่ซ่อนอยู่เช่นช่วง: &lt;style&gt; .popup .title { display: none; } &lt;/style&gt; &lt;a href="#null" title="See the Popup!" class="popup"&gt; click me &lt;span class="title"&gt;Title for My Popup&lt;/span&gt; &lt;/a&gt; ฉันฉีกขาดอย่างไรก็ตามควรเป็นวิธีที่ต้องการ วิธีแรกมีความกระชับมากขึ้นและฉันคาดเดาว่าจะไม่ยุ่งกับเครื่องมือค้นหาและโปรแกรมอ่านหน้าจอมากนัก ในทางกลับกันตัวเลือกที่สองทำให้การจัดเก็บข้อมูลจำนวนมากง่ายขึ้นและมีความหลากหลายมากขึ้น นอกจากนี้ยังเป็นไปตามมาตรฐาน ฉันอยากรู้ว่าชุมชนนี้คิดอย่างไร คุณรับมือกับสถานการณ์เช่นนี้อย่างไร? ความเรียบง่ายของวิธีแรกมีมากกว่าข้อเสียที่อาจเกิดขึ้น (ถ้ามี) …

6
ลำดับของการประเมินในพารามิเตอร์ฟังก์ชัน C ++
ถ้าเรามีฟังก์ชันสามอย่าง (foo, bar และ baz) ที่ประกอบกันเช่นนั้น ... foo(bar(), baz()) มีการรับประกันใด ๆ ตามมาตรฐาน C ++ ที่แถบจะได้รับการประเมินก่อน baz?
92 c++  standards 

3
การเลิกใช้งานคำหลักคงที่ ... ไม่มีอีกแล้วหรือ
ใน C ++ เป็นไปได้ที่จะใช้staticคีย์เวิร์ดภายในหน่วยการแปลเพื่อส่งผลต่อการแสดงสัญลักษณ์ (ไม่ว่าจะเป็นการประกาศตัวแปรหรือฟังก์ชัน) ใน n3092 สิ่งนี้เลิกใช้แล้ว: ภาคผนวก D.2 [depr.static] การใช้คีย์เวิร์ดแบบคงที่จะเลิกใช้เมื่อประกาศอ็อบเจ็กต์ในขอบเขตเนมสเปซ (ดู 3.3.6) ใน n3225 สิ่งนี้ถูกลบออก บทความเดียวที่ฉันจะหาค่อนข้างเป็นทางการ แม้ว่าจะขีดเส้นใต้ว่าสำหรับความเข้ากันได้กับ C (และความสามารถในการคอมไพล์โปรแกรม C เป็น C ++) การเลิกใช้งานนั้นน่ารำคาญ อย่างไรก็ตามการรวบรวมโปรแกรม C โดยตรงเนื่องจาก C ++ อาจเป็นประสบการณ์ที่น่าหงุดหงิดอยู่แล้วดังนั้นฉันจึงไม่แน่ใจว่าควรพิจารณาหรือไม่ มีใครรู้บ้างว่าทำไมถึงเปลี่ยน?
89 c++  static  c++11  standards 

4
คำจำกัดความของคำว่า "ระเหย" นี้มีความผันผวนหรือ GCC มีปัญหาการปฏิบัติตามมาตรฐานหรือไม่
ฉันต้องการฟังก์ชันที่ (เช่น SecureZeroMemory จาก WinAPI) หน่วยความจำเป็นศูนย์เสมอและไม่ได้รับการปรับให้เหมาะสมแม้ว่าคอมไพเลอร์จะคิดว่าหน่วยความจำนั้นจะไม่ถูกเข้าถึงอีกเลยหลังจากนั้น ดูเหมือนผู้สมัครที่สมบูรณ์แบบสำหรับความผันผวน แต่ฉันมีปัญหาบางอย่างในการทำให้ GCC ทำงานได้จริง นี่คือฟังก์ชั่นตัวอย่าง: void volatileZeroMemory(volatile void* ptr, unsigned long long size) { volatile unsigned char* bytePtr = (volatile unsigned char*)ptr; while (size--) { *bytePtr++ = 0; } } ง่ายพอ แต่รหัสที่ GCC สร้างขึ้นจริงถ้าคุณเรียกว่ามันแตกต่างกันอย่างมากกับเวอร์ชันคอมไพเลอร์และจำนวนไบต์ที่คุณพยายามเป็นศูนย์ https://godbolt.org/g/cMaQm2 GCC 4.4.7 และ 4.5.3 ไม่เคยเพิกเฉยต่อความผันผวน GCC 4.6.4 และ 4.7.3 …
89 c++  c  gcc  standards 

1
ตั้งค่าถ่านเป็น CHAR_MAX รับประกันว่าจะพันไปที่ CHAR_MIN หรือไม่?
รหัสของฉัน: #include &lt;stdio.h&gt; #include &lt;limits.h&gt; int main() { char c = CHAR_MAX; c += 1; printf("CHAR_MIN=%d CHAR_MAX=%d c=%d (%c)\n", CHAR_MIN, CHAR_MAX, c, c); } เอาท์พุท: CHAR_MIN=-128 CHAR_MAX=127 c=-128 () เราจะเห็นว่าเมื่อเราเพิ่มcharชุดตัวแปรก็ล้อมรอบไปCHAR_MAX CHAR_MINพฤติกรรมนี้รับประกันหรือไม่ หรือมันจะเป็นพฤติกรรมที่ไม่ได้กำหนดหรือพฤติกรรมที่ระบุการใช้งาน? มาตรฐาน C99 พูดถึงอะไรเกี่ยวกับเรื่องนี้ [หมายเหตุ: จะเกิดอะไรขึ้นเมื่อให้ค่าที่มากกว่า CHAR_MAX (127) ถึงถ่านหรือC- ทำไมถ่าน c = 129 จะเปลี่ยนเป็น -127 ไม่ตอบคำถามนี้เพราะพวกเขาพูดถึงการกำหนดค่านอกช่วงไม่เพิ่มมูลค่าให้กับค่านอกช่วง]

1
“ คำสั่งฮาร์ดแวร์ที่ผิดกฎหมาย” จากรหัสที่ง่ายมาก
ในขณะที่ตรวจสอบการอ้างสิทธิ์ที่น่าสงสัยฉันได้เขียนโปรแกรมทดสอบเล็กน้อยนี้noway.c int proveit() { unsigned int n = 0; while (1) n++; return 0; } int main() { proveit(); return 0; } ทดสอบสิ่งนี้ฉันจะได้รับ: $ clang -O noway.c $ ./a.out zsh: illegal hardware instruction ./a.out วัด หากฉันรวบรวมโดยไม่มีการเพิ่มประสิทธิภาพมันแฮงค์ตามที่คาดไว้ ฉันดูที่ชุมนุมและไม่มีเสียงระฆังและเสียงนกหวีดmainฟังก์ชั่นที่มีลักษณะเช่นนี้: _main: ## @main pushq %rbp movq %rsp, %rbp ud2 ที่ud2เห็นได้ชัดคือคำสั่งที่เฉพาะเจาะจงสำหรับพฤติกรรมที่ไม่ได้กำหนด การเรียกร้องที่น่าสงสัยดังกล่าว "ฟังก์ชั่นที่ไม่เคยส่งคืนคือ UB" …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.