text:
ANSI C
From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
This article is about the programming language standard. For the paper size, see Paper size § ANSI paper sizes.
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (July 2010) (Learn how and when to remove this template message)
ANSI C, ISO C and Standard C refer to the successive standards for the C programming language published by the American National Standards Institute (ANSI) and the International Organization for Standardization (ISO). Historically, the names referred specifically to the original and best-supported version of the standard (known as C89 or C90). Software developers writing in C are encouraged to conform to the standards, as doing so helps portability between compilers.
Contents
[hide]
1 History and outlook
1.1 C89
1.2 C90
1.3 C95
1.3.1 Preprocessor test for C95 compatibility
1.4 C99
1.5 C11
1.6 Other related ISO publications
2 Support from major compilers
2.1 Compliance detectability
3 Compilers supporting ANSI C
4 See also
5 References
6 External links
History and outlook[edit]
The first standard for C was published by ANSI. Although this document was subsequently adopted by International Organization for Standardization (ISO) and subsequent revisions published by ISO have been adopted by ANSI, many programmers still use "ANSI C" to refer to the standard.[who?] While some software developers use the term ISO C, others are standards-body neutral and use Standard C.
C89[edit]
In 1983, the American National Standards Institute formed a committee, X3J11, to establish a standard specification of C. The standard was completed in 1989 and ratified as ANSI X3.159-1989 "Programming Language C." This version of the language is often referred to as "ANSI C". Later on sometimes the label "C89" is used to distinguish it from C99 but using the same labelling method.
C90[edit]
The same standard as C89 was ratified by the International Organization for Standardization as ISO/IEC 9899:1990, with only formatting changes,[1] which is sometimes referred to as C90. Therefore, the terms "C89" and "C90" refer to essentially the same language.
This standard has been withdrawn by both ANSI/INCITS[2] and ISO/IEC.[3]
C95[edit]
In 1995, the ISO published an extension, called Amendment 1, for the ANSI-C standard. Its full name finally was ISO/IEC 9899/AMD1:1995 or nicknamed C95. Aside from error correction there were further changes to the language capabilities,[4][5] such as:
Improved multi-byte and wide character support in the standard library, introducing <wchar.h> and <wctype.h> as well as multi-byte I/O
Addition of digraphs to the language
Specification of standard macros for the alternative specification of operators, e.g. and for &&
Specification of the standard macro __STDC_VERSION__
In addition to the amendment, two technical corrigenda were published by ISO for C90:
ISO/IEC 9899 TCOR1 in 1995
ISO/IEC 9899 TCOR2 in 1996
Preprocessor test for C95 compatibility[edit]
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199409L /* C95 compatible source code. */ #elif defined(__ANSI__) /* C89 compatible source code. */ #endif
C99[edit]
Main article: C99
In March 2000, ANSI adopted the ISO/IEC 9899:1999 standard. This standard is commonly referred to as C99. Some notable additions to the previous standard include:
New built-in data types: long long, _Bool, _Complex, and _Imaginary
Several new core language features, including static array indices, designated initializers, compound literals, variable-length arrays, flexible array members, variadic macros, and restrict keyword
Several new library headers, including stdint.h, <tgmath.h>, fenv.h, <complex.h>
Improved compatibility with several C++ features, including inline functions, single-line comments with //, mixing declarations and code, and universal character names in identifiers
Removed several dangerous C89 language features such as implicit function declarations and implicit int
Three technical corrigenda were published by ISO for C99:
ISO/IEC 9899:1999/Cor.1:2001(E)
ISO/IEC 9899:1999/Cor.2:2004(E)
ISO/IEC 9899:1999/Cor.3:2007(E), notable for deprecating the standard library function gets
This standard has been withdrawn by both ANSI/INCITS[6] and ISO/IEC[7] in favour of C11.
C11[edit]
Main article: C11
"C11" is the current standard for the C programming language. Notable features introduced over the previous revision include improved Unicode support, type-generic expressions using the new _Generic keyword, a cross-platform multi-threading API (threads.h) and atomic types support in both core language and the library (stdatomic.h).
One technical corrigendum has been published by ISO for C11:
ISO/IEC 9899:2011/Cor 1:2012[8]
Other related ISO publications[edit]
As part of the standardization process, ISO also publishes technical reports and specifications related to the C language:
ISO/IEC TR 19769:2004,[9] on library extensions to support Unicode transformation formats, integrated into C11
ISO/IEC TR 24731-1:2007,[10] on library extensions to support bounds-checked interfaces, integrated into C11
ISO/IEC TR 18037:2008,[11] on embedded C extensions
ISO/IEC TR 24732:2009,[12] on decimal floating point arithmetic, superseded by ISO/IEC TS 18661-2:2015
ISO/IEC TR 24747:2009,[13] on special mathematical functions,
ISO/IEC TR 24731-2:2010,[14] on library extensions to support dynamic allocation functions
ISO/IEC TS 17961:2013,[15] on secure coding in C
ISO/IEC TS 18661-1:2014,[16] on IEC 60559:2011-compatible binary floating-point arithmetic
ISO/IEC TS 18661-2:2015,[17] on IEC 60559:2011-compatible decimal floating point arithmetic
ISO/IEC TS 18661-3:2015,[18] on IEC 60559:2011-compatible interchange and extended floating-point types
ISO/IEC TS 18661-4:2015,[19] on IEC 60559:2011-compatible supplementary functions
More technical specifications are in development and pending approval, including the fifth and final part of TS 18661, a software transactional memory specification, and parallel library extensions.[20]
Support from major compilers[edit]
This section does not cite any sources. Please help improve this section by adding citations to reliable sources. Unsourced material may be challenged and removed. (June 2011) (Learn how and when to remove this template message)
ANSI C is now supported by almost all the widely used compilers. Most of the C code being written nowadays is based on ANSI C. Any program written only in standard C and without any hardware dependent assumptions is virtually guaranteed to compile correctly on any platform with a conforming C implementation. Without such precautions, most programs may compile only on a certain platform or with a particular compiler, due, for example, to the use of non-standard libraries, such as GUI libraries, or to the reliance on compiler- or platform-specific attributes such as the exact size of certain data types and byte endianness.
Compliance detectability[edit]
To mitigate the differences between K&R C and the ANSI C standard, the __STDC__ ("standard c") macro can be used to split code into ANSI and K&R sections.
 #if defined(__STDC__) && __STDC__ extern int getopt(int, char * const *, const char *); #else extern int getopt(); #endif
In the above example, a prototype is used in a function declaration for ANSI compliant implementations, while an obsolescent non-prototype declaration is used otherwise. Those are still ANSI-compliant as of C99. Note how this code checks both definition and evaluation: this is because some implementations may set __STDC__ to zero to indicate non-ANSI compliance.[citation needed]
Compilers supporting ANSI C[edit]
Amsterdam Compiler Kit (C K&R and C89/90)
ARM RealView
Clang, using LLVM backend
GCC (full C89/90, C99 and C11)
HP C/ANSI C compiler (C89 and C99)[21]
IBM XL C/C++ (C11, starting with version 12.1)[22]
Intel's ICC
LabWindows/CVI
LCC
OpenWatcom (C89/90 and some C99)
Microsoft Visual C++ (C89/90 and some C99)
Pelles C (C99 and C11. Windows only.)[23]
vbcc (C89/90 and C99)
Tiny C Compiler (C89/90 and some C99)
Oracle Developer Studio
See also[edit]
Computer programming portal
Compatibility of C and C++
C++17, C++14, C++11, C++03, C++98, versions of the C++ programming language standard
C++ Technical Report 1
References[edit]
Jump up ^ "Standards - Using the GNU Compiler Collection (GCC)". Retrieved 2012-06-24.
Jump up ^ http://www.techstreet.com/cgi-bin/detail?doc_no=incits_iso_iec%7C9899;product_id=232462
Jump up ^ "ISO/IEC 9899:1990 - Programming Languages -- C". Retrieved 2012-06-24.
Jump up ^ Clive D.W. Feather (2010-09-12). "A brief description of Normative Addendum 1".
Jump up ^ "ISO/IEC 9899:1990/Amd 1:1995". International Organization for Standardization. 2013-03-22.
Jump up ^ "INCITS/ISO/IEC 9899-2012". ANSI.
Jump up ^ "ISO/IEC 9899:1999 - Programming Languages -- C". Retrieved 2012-06-24.
Jump up ^ "ISO/IEC 9899:2011/Cor 1:2012". International Organization for Standardization.
Jump up ^ "ISO/IEC TR 19769:2004". International Organization for Standardization.
Jump up ^ "ISO/IEC TR 24731-1:2007". International Organization for Standardization.
Jump up ^ "ISO/IEC TR 18037:2008". International Organization for Standardization.
Jump up ^ "ISO/IEC TR 24732:2009". International Organization for Standardization.
Jump up ^ "ISO/IEC TR 24747:2009". International Organization for Standardization.
Jump up ^ "ISO/IEC TR 24731-2:2010". International Organization for Standardization.
Jump up ^ "ISO/IEC TS 17961:2013". International Organization for Standardization.
Jump up ^ "ISO/IEC TS 18661-1:2014". International Organization for Standardization.
Jump up ^ "ISO/IEC TS 18661-2:2015". International Organization for Standardization.
Jump up ^ "ISO/IEC TS 18661-3:2015". International Organization for Standardization.
Jump up ^ "ISO/IEC TS 18661-4:2015". International Organization for Standardization.
Jump up ^ See a list at http://en.cppreference.com/w/c/experimental Visited 16 January 2016.
Jump up ^ "HP C/ANSI C developer's bundle". Retrieved 2015-07-12.
Jump up ^ Support for ISO C11 added to IBM XL C/C++ compilers
Jump up ^ link to Pelles C pages
External links[edit]
ISO C working group
Draft ANSI C Standard (ANSI X3J11/88-090) (May 13, 1988), Third Public Review
Draft ANSI C Rationale (ANSI X3J11/88-151) (Nov 18, 1988)
C Information Bulletin #1 (ANSI X3J11/93-007) (May 27, 1992)
ANSI C Yacc grammar
ANSI C grammar, Lex specification
Schreiner, Axel-Tobias. Object oriented programming with ANSI-C. Hanser. hdl:1850/8544. ISBN 3-446-17426-5.
"ISO/IEC 9899:1999 Programming Languages -- C". American National Standards Institute.
"ANSI Standards Action Vol. 36, #48" (PDF). American National Standards Institute. 2005-12-02.
hide
v
t
e
List of International Electrotechnical Commission standards
IEC standards
IEC 60027
IEC 60034
IEC 60038
IEC 60062
IEC 60063
IEC 60068
IEC 60112
IEC 60228
IEC 60269
IEC 60297
IEC 60309
IEC 60320
IEC 60364
IEC 60446
IEC 60559
IEC 60601
IEC 60870
IEC 60870-5
IEC 60870-6
IEC 60906-1
IEC 60908
IEC 60929
IEC 60958
AES3
S/PDIF
IEC 61030
IEC 61131
IEC 61131-3
IEC 61158
IEC 61162
IEC 61334
IEC 61346
IEC 61355
IEC 61400
IEC 61499
IEC 61508
IEC 61511
IEC 61850
IEC 61851
IEC 61883
IEC 61960
IEC 61968
IEC 61970
IEC 62014-4
IEC 62056
IEC 62061
IEC 62196
IEC 62262
IEC 62264
IEC 62304
IEC 62325
IEC 62351
IEC 62365
IEC 62366
IEC 62379
IEC 62386
IEC 62455
IEC 62680
IEC 62682
IEC 62700
ISO/IEC standards
ISO/IEC 646
ISO/IEC 2022
ISO/IEC 4909
ISO/IEC 5218
ISO/IEC 6429
ISO/IEC 6523
ISO/IEC 7810
ISO/IEC 7811
ISO/IEC 7812
ISO/IEC 7813
ISO/IEC 7816
ISO/IEC 7942
ISO/IEC 8613
ISO/IEC 8632
ISO/IEC 8652
ISO/IEC 8859
ISO/IEC 9126
ISO/IEC 9293
ISO/IEC 9592
ISO/IEC 9593
ISO/IEC 9899
ISO/IEC 9945
ISO/IEC 9995
ISO/IEC 10021
ISO/IEC 10116
ISO/IEC 10165
ISO/IEC 10179
ISO/IEC 10646
ISO/IEC 10967
ISO/IEC 11172
ISO/IEC 11179
ISO/IEC 11404
ISO/IEC 11544
ISO/IEC 11801
ISO/IEC 12207
ISO/IEC 13250
ISO/IEC 13346
ISO/IEC 13522-5
ISO/IEC 13568
ISO/IEC 13818
ISO/IEC 14443
ISO/IEC 14496
ISO/IEC 14882
ISO/IEC 15288
ISO/IEC 15291
ISO/IEC 15408
ISO/IEC 15444
ISO/IEC 15445
ISO/IEC 15504
ISO/IEC 15511
ISO/IEC 15693
ISO/IEC 15897
ISO/IEC 15938
ISO/IEC 16262
ISO/IEC 17024
ISO/IEC 17025
ISO/IEC 18000
ISO/IEC 18004
ISO/IEC 18014
ISO/IEC 19752
ISO/IEC 19757
ISO/IEC 19770
ISO/IEC 19788
ISO/IEC 20000
ISO/IEC 21000
ISO/IEC 21827
ISO/IEC 23000
ISO/IEC 23003
ISO/IEC 23008
ISO/IEC 23270
ISO/IEC 23360
ISO/IEC 24707
ISO/IEC 24727
ISO/IEC 24744
ISO/IEC 24752
ISO/IEC 26300
ISO/IEC 27000
ISO/IEC 27000-series
ISO/IEC 27002
ISO/IEC 27040
ISO/IEC 29119
ISO/IEC 33001
ISO/IEC 38500
ISO/IEC 42010
ISO/IEC 80000
Related
International Electrotechnical Commission
hide
v
t
e
C programming language
ANSI C
C89 and C90
C99
C11
Embedded C
MISRA C
Features
Functions
Header files
Libraries
Operators
String
Syntax
Preprocessor
Data types
Standard library
functions
Char (ctype.h)
File I/O (stdio.h)
Math (math.h)
Dynamic memory (stdlib.h)
String (string.h)
Time (time.h)
Variadic (stdarg.h)
POSIX
Standard
libraries
Bionic
libhybris
dietlibc
EGLIBC
glibc
klibc
Microsoft Run-time Library
musl
Newlib
uClibc
BSD libc
Compilers
Comparison of compilers
ACK
Borland Turbo C
Clang
GCC
ICC
LCC
PCC
SDCC
TCC
Microsoft Visual Studio / Express / C++
Watcom C/C++
IDEs
Comparison of IDEs
Anjuta
Code::Blocks
CodeLite
Eclipse
Geany
Microsoft Visual Studio
NetBeans
Comparison with
other languages
Compatibility of C and C++
Comparison with Embedded C
Comparison with Pascal
Comparison of programming languages
Descendant
languages
C++
C#
D
Objective-C
Alef
Limbo
Go
Vala
Category
Retrieved from "https://en.wikipedia.org/w/index.php?title=ANSI_C&oldid=844573304"
Categories:
ANSI standards
C (programming language)
Programming language standards
Hidden categories:
Articles needing additional references from July 2010
All articles needing additional references
All articles with specifically marked weasel-worded phrases
Articles with specifically marked weasel-worded phrases from August 2017
Articles needing additional references from June 2011
All articles with unsourced statements
Articles with unsourced statements from January 2016
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
More
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Tools
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
Languages
العربية
Български
Čeština
Deutsch
Español
فارسی
한국어
Bahasa Indonesia
日本語
Norsk
Norsk nynorsk
Русский
Svenska
Türkçe
中文
6 more
Edit links
This page was last edited on 5 June 2018, at 19:11.
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Cookie statement
Mobile view
Enable previews

values: mw-page-base noprint

values: mw-head-base noprint

values: firstHeading firstHeading en

values: siteSub noprint

attrs: class href

values: mw-jump-link #mw-head

values: mw-jump-link #p-search

attrs: role class

values:
note
hatnote navigation-not-searchable

attrs: alt src width height srcset data-file-width data-file-height

value: b

values: Help:Introduction to referencing with Wiki Markup/1

value: span

value: i

value: small

values: plainlinks metadata ambox ambox-content ambox-Refimprove

values: International Organization for Standardization

values: The material near this tag possibly uses too-vague attribution or weasel words. (August 2017)

values: Wikipedia:Manual of Style/Words to watch

values:
/wiki/Multi-byte_character_set
mw-redirect
Multi-byte character set

values:
/wiki/Digraph_(computing)#C
mw-redirect
Digraph (computing)

values: Edit section: Preprocessor test for C95 compatibility

values: Edit section: Other related ISO publications

values:
/wiki/IEEE_floating_point
mw-redirect
IEEE floating point

values: Edit section: Support from major compilers

values: plainlinks metadata ambox ambox-content ambox-Unreferenced

values:
/wiki/System_platform
mw-redirect
System platform

values: This claim needs references to reliable sources. (January 2016)

values:
noprint Inline-Template Template-Fact
white-space:nowrap;

values: Edit section: Compilers supporting ANSI C

values:
/wiki/ARM_Holdings
mw-redirect
ARM Holdings

values:
/wiki/IBM_XL_C/C%2B%2B
mw-redirect
IBM XL C/C++

values:
/wiki/Visual_C%2B%2B
mw-redirect
Visual C++

attrs: alt src width height class srcset data-file-width data-file-height

values: display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle

values: margin:0.5em 0 0.5em 1em;border:solid #aaa 1px

values:
nofollow
external text
http://www.lysator.liu.se/c/na1.html

values:
nofollow
external text
http://www.hp.com/go/c

values:
nofollow
http://www.smorgasbordet.com/pellesc/
external text

values:
nofollow
http://www.open-std.org/jtc1/sc22/wg14/
external text

values: Axel-Tobias Schreiner (page does not exist)

values:
nofollow
external text
//hdl.handle.net/1850%2F8544

values: Template:List of International Electrotechnical Commission standards

values: Template talk:List of International Electrotechnical Commission standards

values: Guidelines for the Definition of Managed Objects

values: Document Style Semantics and Specification Language

values: International Standard Identifier for Libraries and Related Organizations

values: nowraplinks hlist collapsible autocollapse navbox-inner mw-collapsible mw-made-collapsible

values:
*ANSI_C
**C89_and_C90
*C99
*C11
*Embedded_C
*MISRA_C

values: Comparison of integrated development environments

values: Category:Comparison of individual programming languages

attrs: alt src title width height srcset data-file-width data-file-height

values: Category:Articles needing additional references from July 2010

values: Category:All articles needing additional references

values: Category:All articles with specifically marked weasel-worded phrases

values: Category:Articles with specifically marked weasel-worded phrases from August 2017

values: Category:Articles needing additional references from June 2011

values: Category:All articles with unsourced statements

values: Category:Articles with unsourced statements from January 2016

values: Discussion about edits from this IP address [ctrl-alt-n]

values: A list of edits made from this IP address [ctrl-alt-y]

values: You are encouraged to create an account and log in; however, it is not mandatory

values: You're encouraged to log in; however, it's not mandatory. [ctrl-alt-o]

values:
/wiki/ANSI_C
View the content page [ctrl-alt-c]
c

values: Discussion about the content page [ctrl-alt-t]

values: p-namespaces navigation vectorTabs p-namespaces-label

values:
/w/index.php?title=ANSI_C&action=edit
Edit this page [ctrl-alt-e]
e

values: Find background information on current events

values:
/wiki/Special:Random
Load a random article [ctrl-alt-x]
x

values: portal navigation p-navigation p-navigation-label

values: Guidance on how to use and edit Wikipedia

values: About the project, what you can do, where to find things

values: A list of recent changes in the wiki [ctrl-alt-r]

values: portal navigation p-interaction p-interaction-label

values: List of all English Wikipedia pages containing links to this page [ctrl-alt-j]

values: Recent changes in pages linked from this page [ctrl-alt-k]

values:
/wiki/Wikipedia:File_Upload_Wizard
Upload files [ctrl-alt-u]
u

values: A list of all special pages [ctrl-alt-q]

values: أنسي سي – Arabic

values:
https://bg.wikipedia.org/wiki/ANSI_C
ANSI C – Bulgarian
bg
bg
interlanguage-link-target

values:
interlanguage-link interwiki-bg
display: none;

values:
https://cs.wikipedia.org/wiki/ANSI_C
ANSI C – Czech
cs
cs
interlanguage-link-target

values:
interlanguage-link interwiki-cs
display: none;

values: Varianten der Programmiersprache C – German

values:
https://es.wikipedia.org/wiki/ANSI_C
ANSI C – Spanish
es
es
interlanguage-link-target

values: آنسی سی – Persian

values:
interlanguage-link interwiki-fa
display: none;

values:
https://ko.wikipedia.org/wiki/ANSI_C
ANSI C – Korean
ko
ko
interlanguage-link-target

values:
https://id.wikipedia.org/wiki/ANSI_C
ANSI C – Indonesian
id
id
interlanguage-link-target

values:
https://ja.wikipedia.org/wiki/ANSI_C
ANSI C – Japanese
ja
ja
interlanguage-link-target

values:
https://no.wikipedia.org/wiki/ANSI_C
ANSI C – Norwegian
no
no
interlanguage-link-target

values:
interlanguage-link interwiki-no
display: none;

values:
https://nn.wikipedia.org/wiki/ANSI_C
ANSI C – Norwegian Nynorsk
nn
nn
interlanguage-link-target

values:
interlanguage-link interwiki-nn
display: none;

values:
https://ru.wikipedia.org/wiki/ANSI_C
ANSI C – Russian
ru
ru
interlanguage-link-target

values:
https://sv.wikipedia.org/wiki/ANSI_C
ANSI C – Swedish
sv
sv
interlanguage-link-target

values:
interlanguage-link interwiki-sv
display: none;

values:
https://tr.wikipedia.org/wiki/ANSI_C
ANSI C – Turkish
tr
tr
interlanguage-link-target

values:
https://zh.wikipedia.org/wiki/ANSI_C
ANSI C – Chinese
zh
zh
interlanguage-link-target

values: All languages (initial selection from common choices by you and others)

values:
suggestions
display: none; font-size: 13px;

values: mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-ANSI_C rootpage-ANSI_C skin-vector action-view


text:
Mind your Ps and Qs
From Wikipedia, the free encyclopedia
Jump to: navigation, search
"Ps and Qs" redirects here. For the song, see P's and Q's (song).
Look up mind one's ps and qs in Wiktionary, the free dictionary.
Mind your Ps and Qs is an English language expression meaning "mind your manners", "mind your language", "be on your best behaviour" or similar.
Attempts at explaining the origin of the phrase go back to the mid-19th century. One explanation favoured in a letter to the editors of Notes and Queries dated 1851, as well as by the Oxford English Dictionary upon their revision of the relevant entry in 2007, is literal interpretation of the saying, concerning the distinction of the lowercase letters p and q in the context of the school-room or the printing-office.[1]
According to Michael Quinion, "[i]nvestigations by the Oxford English Dictionary in 2007 when revising the entry turned up early examples of the use of Ps and Qs to mean learning the alphabet. The first is in a poem by Charles Churchill, published in 1763: “On all occasions next the chair / He stands for service of the Mayor, / And to instruct him how to use / His A’s and B’s, and P’s and Q’s.” The conclusion must be that this is the true origin."[2]
When pupils were taught to write lowercase alphabet, the positioning of the vertical line before or after the circle represented different letters: d & b, p & q. Pupils had to also mind the placement of the letters when writing the alphabet eg. p comes before q. As noted by W. D. Henkle in Educational Notes and Queries in 1876, in this case the proper spelling of the phrase should be "note your p's and q's", because the distinction of majuscule P and Q does not pose a problem.[3]
Nevertheless, a number of alternative explanations have been considered as more or less plausible. Another explanation suggests that "Ps and Qs" is short for "pleases" and "thank-yous", the latter of which contains a sound similar to the pronunciation of the name of the letter "Q". Another proposed origin is from the English pubs and taverns of the 17th century. Bartenders would keep a watch on the alcohol consumption of the patrons; keeping an eye on the pints and quarts that were consumed. As a reminder to the patrons, the bartender would recommend they "mind their Ps and Qs".[4] This may also have been a reminder to bartenders not to confuse the two units, written as "p" and "q" on the tally slate.[2]
Other origin stories, some considered "fanciful",[2] could come from French instructions to mind one's pieds (feet) and queues (wigs) while dancing. However, there is no French translation for this expression.[5] Another origin could be from sailors in the 18th century who were reminded to pay attention to their peas (pea coat) and queues (pony tail).[5]
Another proposal concerns the use of Norman French in medieval England; as the English dialect of the 11th century had no qs,[dubious – discuss] one must watch their usage in court or discourse with the French Norman conquerors. [6][dubious – discuss]
Quinion cites an apparently related expression of pee and kew for "highest quality" used in 17th-century English: "The Oxford English Dictionary has a citation from Rowlands’ Knave of Harts of 1612: “Bring in a quart of Maligo, right true: And looke, you Rogue, that it be Pee and Kew.” Nobody is really sure what either P or Q stood for. To say they’re the initials of “Prime Quality” seems to be folk etymology, because surely that would make “PQ” rather than “P and Q”.[2]

References[edit]
Jump up ^ Knight, Charles (July 5, 1851). "Mind your Ps and Qs". Notes and Queries. Oxford University Press. 4 (88): 11.
^ Jump up to: a b c d Quinion, Michael (February 2, 2008). "Mind Your Ps and Qs". World Wide Words. Retrieved February 9, 2008.
Jump up ^ Henkle, W. D. (1875). "What is the origin of the injunction "Mind your Ps and Qs"". Educational Notes and Queries. 1–4: 136.
Jump up ^ Evins, Karlen. "I Didn't Know That" New York: Scribner, 2007, ..78.
^ Jump up to: a b Martin, Gary. "'Mind your Ps and Qs' - the meaning and origin of this phrase". The Phrase Finder. Retrieved February 9, 2008.
Jump up ^ Crystal, David. "The Cambridge Encyclopedia of The English Language" pg. 30-31, 1995.
External links[edit]
Quinn, Polly. "Where did the saying 'mind your Ps and Qs' come from?" (ask.yahoo.com) 2003.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Mind_your_Ps_and_Qs&oldid=833112852"
Categories:
English-language idioms
English phrases
Hidden categories:
CS1: Julian–Gregorian uncertainty
All accuracy disputes
Articles with disputed statements from April 2016
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
More
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Tools
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
Languages
Add links
This page was last edited on 29 March 2018, at 18:48.
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Cookie statement
Mobile view
Enable previews

key: html

type: local

value: div

attrs: id class

values: mw-page-base noprint

values: mw-head-base noprint

value: a

attrs: id class lang

values: firstHeading firstHeading en

values: siteSub noprint

values: jump-to-nav mw-jump

attrs: href class title

values:
/wiki/P%27s_and_Q%27s_(song)
mw-redirect
P's and Q's (song)

values:
note
hatnote navigation-not-searchable

value: img

value: td

value: tr

value: tbody

value: table

attrs: role class style

attrs: href title

value: p

values:
/wiki/Public_house
mw-redirect
Public house

values:
/wiki/Norman_French
mw-redirect
Norman French

values: The material near this tag is possibly inaccurate or nonfactual. (April 2016)

values: -moz-column-width: 30em; -webkit-column-width: 30em; column-width: 30em; list-style-type: decimal;

values:
nofollow
external text
http://ask.yahoo.com/20031127.html

values: Category:Articles with disputed statements from April 2016

values: Discussion about edits from this IP address [ctrl-alt-n]

values: A list of edits made from this IP address [ctrl-alt-y]

values: You are encouraged to create an account and log in; however, it is not mandatory

values: You're encouraged to log in; however, it's not mandatory. [ctrl-alt-o]

values:
/wiki/Mind_your_Ps_and_Qs
View the content page [ctrl-alt-c]
c

values: Discussion about the content page [ctrl-alt-t]

values: p-namespaces navigation vectorTabs p-namespaces-label

values:
p-variants
navigation
vectorMenu emptyPortlet
p-variants-label

values: Past revisions of this page [ctrl-alt-h]

values: p-views navigation vectorTabs p-views-label

values:
p-cactions
navigation
vectorMenu emptyPortlet
p-cactions-label

values:
mw-wiki-logo
/wiki/Main_Page
Visit the main page

values:
/wiki/Main_Page
Visit the main page [ctrl-alt-z]
z

values: Featured content – the best of Wikipedia

values: Find background information on current events

values:
/wiki/Special:Random
Load a random article [ctrl-alt-x]
x

values: portal navigation p-navigation p-navigation-label

values: Guidance on how to use and edit Wikipedia

values: About the project, what you can do, where to find things

values: A list of recent changes in the wiki [ctrl-alt-r]

values: portal navigation p-interaction p-interaction-label

values: List of all English Wikipedia pages containing links to this page [ctrl-alt-j]

values: Recent changes in pages linked from this page [ctrl-alt-k]

values:
/wiki/Wikipedia:File_Upload_Wizard
Upload files [ctrl-alt-u]
u

values: A list of all special pages [ctrl-alt-q]

values: Permanent link to this revision of the page

values: Link to connected data repository item [ctrl-alt-g]

values: Printable version of this page [ctrl-alt-p]

values: /static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x

values: /static/images/poweredby_mediawiki_132x47.png 1.5x, /static/images/poweredby_mediawiki_176x62.png 2x

values: mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Mind_your_Ps_and_Qs rootpage-Mind_your_Ps_and_Qs skin-vector action-view