Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!rutgers!lll-lcc!pyramid!voder!blia!heather From: heather@blia.UUCP Newsgroups: comp.lang.c Subject: Re: Problem with Microsoft C V4.0 Message-ID: <1887@blia.BLI.COM> Date: Tue, 24-Mar-87 12:37:43 EST Article-I.D.: blia.1887 Posted: Tue Mar 24 12:37:43 1987 Date-Received: Thu, 26-Mar-87 06:23:11 EST References: <5397@brl-adm.ARPA> Organization: Britton Lee, Los Gatos, CA Lines: 48 Summary: From the manual In article <5397@brl-adm.ARPA>, Schauble@mit-multics.arpa (Paul Schauble) writes: > I've recently acquired Microsoft C version 4.0, replacing Lattice > > Within one file I have the function declaration > > void bgunlink_transaction_record (bgfile, client, transaction) > BGFILE *bgfile; > struct tclient_rec *client; > struct ttransaction_rec *transaction; > > Later in the file: > > bgunlink_transaction_record (&bgfile, &client_rec, rec, &transaction); > > Note that they don't match in number or types of arguments. When > compiling with /W3 for maximum checking, the compiler SAYS NOT A WORD > ABOUT THIS. On pages 77-79 of the Microsoft C Compiler User's Guide, the /Zg option is described. This is also the section that describes type checking on functions. In a box on the middle of page 78, there is a warning that /Zg will not work for structs, enums or unions (or pointers to such) unless the struct declaration includes a tag. My guess, based on other Microsoft "features", is that type checking follows this constraint also. I also like Codeview and Microsoft in general far better than Lattice. But there are many undocumented or poorly documented limitations that make it much more difficult to use than it should be. The support organization has never let me in on the secret the first time I call in about a problem; they always let me discover the limitations for myself. The biggest gripe I have is that Codeview cannot be used in source mode with files included in a library. Since we sell a source library product, this is a big pain for me. You can't even put a breakpoint at a routine which is in a library, no matter how much symbolic information is in the .obj file. I don't want to sour anybody on Microsoft. It is far better than the compilers available when I started on the PC in 1983. It is also the most complete professional C compiler for the PC I have seen. But the documentation seems to be marketing literature and can be very frustrating if you are trying to do real world programming. Heather Mackinnon PC Guru :-) Britton-Lee, Inc.