一个toold的笑话及笑话以外的东西:如何编hello word程序
如何编hello word程序
High School/Jr.High
10 PRINT HELLO WORLD
20 END
First year in College
program Hello(input, output)
begin
writeln(’Hello World’)
end.
Senior year in College
(defun hello
(print
(cons ’Hello (list ’World))))
New professional
#include
void main(void)
{
char *message[] = {Hello , World};
int i;
for(i = 0; i <2; ++i) printf(%s, message[i]); printf(
); }
Seasoned professional
#include
#include
class string
{
private:
int size;
char *ptr;
public:
string() : size(0), ptr(new char(’’)) {}
string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}
~string()
{
delete [] ptr;
}
friend ostream &operator <<(ostream &, const string &); string
&operator=(const char *); }; ostream &operator<<(ostream &stream, const
string &s) { return(stream << s.ptr); } string &string::operator=(const
char *chrs) { if (this !=&chrs) { delete [] ptr; size=strlen(chrs);
ptr=new char[size + 1]; strcpy(ptr, chrs); } return(*this); } int main() {
string str; str=Hello World ; cout << str << endl; return(0); }
Master Programmer
[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
// bring in the master library
importlib(actimp.tlb);
importlib(actexp.tlb);
// bring in my interfaces
#include pshlo.idl
[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};
[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{
// some code related header files
importheader();
importheader();
importheader();
importheader(pshlo.h);
importheader(shlo.hxx);
importheader(mycls.hxx);
// needed typelibs
importlib(actimp.tlb);
importlib(actexp.tlb);
importlib(thlo.tlb);
[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable
]
coclass CHello
{
cotype THello;
};
};
#include ipfix.hxx
extern HANDLE hEvent;
class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);
CHello(IUnknown *pUnk);
~CHello();
HRESULT __stdcall PrintSz(LPWSTR pwszString);
private:
static int cObjRef;
};
#include
#include
#include
#include
#include thlo.h
#include pshlo.h
#include shlo.hxx
#include mycls.hxx
int CHello::cObjRef = 0;
CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}
HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf(%ws
, pwszString);
return(ResultFromScode(S_OK));
}
CHello::~CHello(void)
{
// when the object count goes to zero, stop the server
cObjRef--;
if( cObjRef == 0 )
PulseEvent(hEvent);
return;
}
#include
#include
#include pshlo.h
#include shlo.hxx
#include mycls.hxx
HANDLE hEvent;
int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();
hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);
CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);
// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);
// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();
// Tell OLE we are going away.
CoUninitialize();
return(0); }
extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;
CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
#include
#include
#include
#include
#include
#include pshlo.h
#include shlo.hxx
#include clsid.h
int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];
// get object path
wcsPath[0] = ’’;
wcsT[0] = ’’;
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, Object path must be specified
);
return(1);
}
// get print string
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, LHello World);
printf(Linking to object %ws
, wcsPath);
printf(Text String %ws
, wcsT);
// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
if(SUCCEEDED(hRslt)) {
hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
if(SUCCEEDED(hRslt)) {
// print a string out
pHello->PrintSz(wcsT);
Sleep(2000);
ulCnt = pHello->Release();
}
else
printf(Failure to connect, status: %lx, hRslt);
// Tell OLE we are going away.
CoUninitialize();
}
return(0);
}
Apprentice Hacker
#!/usr/local/bin/perl
$msg=Hello, world.
;
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, > . $outfilename) || die Can’t write $arg: $!
;
print (FILE $msg);
close(FILE) || die Can’t close $arg: $!
;
}
} else {
print ($msg);
}
1;
Experienced Hacker
#include
#define S Hello, World
main(){exit(printf(S) == strlen(S) ? 0 : 1);}
Seasoned Hacker
% cc -o a.out ~/src/misc/hw/hw.c
% a.out
Guru Hacker
% cat
Hello, world.
^D
New Manager
10 PRINT HELLO WORLD
20 END
Middle Manager
mail -s Hello, world. bob@b12
Bob, could you please write me a program that prints Hello,
world.?
I need it by tomorrow.
^D
Senior Manager
% zmail jim
I need a Hello, world. program by this afternoon.
Chief Executive
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout
以上是一个流传了很久的关于不同人写Hello word程序的笑话,再贴出来是回为再次回到这里,看了几个贴了,发现一些与此joke相似的地方。
有时一个很简单的问题,提问的人可能是刚入门,对C不太了解,所以才提问。
可是,后面往往会跟很多的贴子,有时甚至很多人说的是相同的内容,完全没有新意。
更有人为了与众不同,比着将简单问题复杂化,或是比着将问题细化。也不管楼主是否需要。
热情是好事,耐心是优点,但是能不能用在更有价值的问题上面,用在那些讨论起来可以使自己学到知识,获得成长的问题上。
一个小问题,有人解决了,要是没什么大错误就让它过去吧,将注意力放到下一个问题上。
不可否认,我开始来这里时也是这种什么贴子都要都凑个热闹的心态,也因此浪费了很多时间。
那时,为了混几个专家分,特别关注那些刚入门的朋友所提的简单问题的帖子,一旦发现,就一定要去说两句(因为太有深度的俺不会啊)。
可是现在想想,这样做对自己而言是没有太多好处的,时间和精力浪费的不值得。
俺绝对是好心,要是以上言论让某些朋友不舒服的话,就当俺没说。俺是绝对没有恶意的。