HDTenEightyP/NetNews huggingface dataset:
From: dnl@convex.is.macsch.com (David Lombard)
Newsgroups: comp.lang.c,comp.lang.fortran,comp.lang.pascal,sci.math.num-analysi
Subject: Re: Numerical Analysis on a PC-languages?
Date: 15 Oct 92 21:40:47 GMT
Organization: MacNeal-Schwendler Corp.

In article <1992Oct15.030352.29865@leland.Stanford.EDU> ungar@leland.Stanford.EDU (Jeffrey Ungar) writes:
>Ha! But perhaps true on Crays... I thought the message mentioned 
>486 PC's, though.

I meant what I wrote!  Namely that Cray's compilers provide better 
(CORRECT, exceedingly strong, non-self-defeating) optimizations for their 
machines than any other compiler vendor is able to provide for any other 
machine.

Optimization is difficult to do correctly - it takes hard work and lot's
of experience.  Most other vendors lean towards correctness "Let's 
forget the optimizations which may be wrong", laziness "Oh let's do
it anyway, we can always write a disclaimer and tell them to restructure
their code", or arrogance "So what if our inlining produces slower code, 
that's a boring detail".  I don't care how advanced/elegant/interesting
the theory is if the code is wrong!

Point of fact:  With Cray's CFT77 compiler, I've been able to use "aggressive"
optimization with inlining in a particularly LARGE, numerically intensive, 
code.  For most other compilers (obviously from other vendors for other 
platforms), I've had to either suboptimize a handful of routines or (worse 
yet) *only* optimize a handful of routines in order to get correct results!


Regards,
DNL
******************************************************************************
*               MY COMMENTS == MY OPINIONS != ANYBODY ELSES                  *
******************************************************************************
* David N. Lombard                               The MacNeal-Schwendler Corp *
* dnl@macsch.com                                 815 Colorado Blvd           *
* (213) 259-4911                                 Los Angeles, CA  90041      *
******************************************************************************
Newsgroups: comp.lang.c
From: pjh@mccc.edu (Pete Holsberg)
Subject: Re: Strings and integer sizes
Organization: The College On The Other Side Of Route One
Date: Sat, 10 Oct 1992 18:12:49 GMT

In article <1992Oct9.173755.18595@athena.mit.edu> scs@adam.mit.edu (Steve Summit) writes:
=(It's been mentioned several times during this thread, but
="string" is a weakly-defined concept in C, not a formal part of
=the language except by convention, and by the fact that string
=literals generate them and many standard library routines expect
=them.)

I believe that string is quite well-defined: it's a constant. We're
running into semantic problems here. For example, which of the following
is an "int", given the declaration "int count;"?
	a. 7
	b. count

Both are, because loosely speaking, an int is either an int variable or
an int constant. Or perhaps neither is, because the question wasn't
specific enough.

Newsgroups: comp.lang.c
From: walduck@mpr.ca (Andrew Walduck)
Subject: Re: What should we do here?
Organization: MPR Teltech Ltd., Burnaby, B.C., Canada
Date: Sat, 17 Oct 92 00:42:50 GMT

In article <Bw8npJ.Er9@dcs.ed.ac.uk> mikef@dcs.ed.ac.uk (Mike Fourman) writes:
>In article <3684@dozo.and.nl> jos@and.nl (Jos Horsmeier) writes:
>>In article <Bw7szz.4J4@dcs.ed.ac.uk> mikef@dcs.ed.ac.uk (Mike Fourman) writes:
>[my article criticising some traffic in comp.lang.c quoted in full, 
> including the following line]
>>|Apart from that, its become a waste of time.
>and the rebuke:
>>I'm sorry for saying so, but I find this quite insulting towards 
>
>When should I use #define and when should I use const?
>Since there is a type char, why does getchar return an int?

int getchar(void);

It returns an int instead of a char so that all characters plus 
the EOF can be returned. If it only returned char, it would not be
able to return all of the characters, and EOF.

IMHO #define is better option to use.
The major problems with using const to declare constants are:
Used in a .h (a la const float pi = 3.14159265;) can lead to multiple
definitions of PI during the link phase (if the .h is used in several
places...)
Used in a .h file (a la extern const float pi;) and a .c file 
(const float pi = 3.14159265) reduces the compilers ability to optimize.
Also, a const var, isn't necessarily constant. 

Andrew Walduck
-- 
Andrew Walduck, MPR Canada, walduck@mprgate.mpr.ca
-------------------------------------------------------------------------------
(I hope someone will flatter me by using this as a .sig quote...)
 -- Reid Kneeland
Newsgroups: comp.lang.c
From: dobrien@seas.gwu.edu (David O'Brien)
Subject: ANSI std vs. ISO standard
Organization: George Washington University
Date: Wed, 14 Oct 1992 14:42:38 GMT

I wanted to get the ANSI C standard, so following the FAQ, I called ANSI.
When I asked how to get the standard, they tell me that X3.159 has been
replaced by ISO 9899 and this is what I really should get.  They act as
though noone should want the ANSI standard now.  The cost of the ANSI
standard is $50 and the cost of the ISO standard is $130.  They can't 
tell me if the ISO standard even comes with the Rationale.  By chance
does anyone know what the differences are in these two documents and
whether or not the ISO document comes with the Rationale?  Which 
should one order?

-- David O'Brien	// C++	-- Ada
	(dobrien@sra.com -or- dobrien@seas.gwu.edu)
Newsgroups: comp.lang.c
From: mjs@hubcap.clemson.edu (M. J. Saltzman)
Subject: Re: multidimensional arrays as parameters
Organization: Clemson University, Clemson SC
Date: Fri, 16 Oct 1992 18:46:56 GMT

In article <454@ulogic.UUCP> hartman@ulogic.UUCP (Richard M. Hartman) writes:
>In article <1992Oct14.215124.100265@Cookie.secapl.com> frank@Cookie.secapl.com (Frank Adams) writes:
>>In article <1992Oct13.224918.21890@kakwa.ucs.ualberta.ca> bill@chaos.phys.ualberta.ca (Bill Burris) writes:
>>>I was wondering how to pass a multidimensional array as a parameter.
>>>[...]
>>        Thus fun2d should be:
>>
>>void fun2d( int * [20]);
              ^^^^^^^^^^
	int (*)[20]     /* I made this mistake when I first saw it, too. */
>>
>>Isn't this in the FAQ?

Question 2.9 I think.

>Which begs the question, since the next array I pass may be [40][50],
>is there a more general approach?  

Should this be an FAQ, or maybe an addition to 2.11?  I do the following:

	void fun(int *, int, int);

	main()
	{
	    int a[10][20];

	    fun(a, 10, 20);
	}

	void fun(int *aa, int m, int n)
	{
	    int **a = malloc(m * sizeof(int *));
	    int i, j;

	    for ( a[0] = aa, i = 1;  i < m;  i++ )
		a[i] = a[i - 1] + n;

	    /* reference a[i][j] as you'd expect */

	    free(a);
	}

Is there any (potential) problem with this (up to error checking for
malloc())?  Is it strictly conforming?

>[...compute offsets yourself...]
>Note: the order in which your machine (row-major or column-major) stores
>it's array-of-arrays will affect the math involved, it could also be:
>
>        *(arr+(xsiz*xcoord)+ycoord) = value;    /* arr[xcoord][ycoord]=value; */
>
>on some systems.

Never.  C arrays must be row-major.  (This is language-dependent,
not machine-dependent.  I suppose there may be some languages for which
it's is implementation-dependent, but C, Pascal, and Fortran are not
among them.)

>Disclaimer: I have not compiled the above code and have not worked
>with multidimensional arrays for some time.  You may have to fiddle
>w/ the details (swap x & y?) to get it to work, but the concept
>should be valid on most systems.

Hmph.

>q: would |void fun2d(int a[][])| be of any use (I don't *think* so...)

No.  To compute offsets of the first index, the size of the second index
must be known at compile time.  (It shouldn't have been that hard to add

	void foo( int m, int n, int a[m][n])

right from the start, but they didn't.  The Numerical C Extensions Group
is working on something like this as part of their proposal).

>
>
>
>		-Richard Hartman
>		hartman@ulogic.COM
>
>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>"Smoke me a kipper, I'll be back for breakfast!"


-- 
		Matthew Saltzman
		Clemson University Math Sciences
		mjs@clemson.edu
Newsgroups: comp.lang.c
From: pjh@mccc.edu (Pete Holsberg)
Subject: Re: Strings and integer sizes
Organization: The College On The Other Side Of Route One
Date: Tue, 13 Oct 1992 15:49:44 GMT

In article <417@ulogic.UUCP> hartman@ulogic.UUCP (Richard M. Hartman) writes:
=Comment:
=
=	Somebody probably made the argument that it was more convenient
=	than the proper "= { 'a', 'b', 'c'};" and the committee (perhaps
=	due to lack of proper caffiene levels in their blood after their
=	Mr. Coffee broke down) bought it.
=
=IMnsHO it is a serious misteak.

Or perhaps a cirrhius mistake?? ;-)
From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe)
Newsgroups: comp.lang.c
Subject: Re: problem with sin on MSC7.0
Date: 15 Oct 92 09:02:47 GMT
Organization: Comp Sci, RMIT, Melbourne, Australia

In article <1992Oct14.084222.14873@rz.uni-karlsruhe.de>, GM08@DKAUNI2.BITNET (hans friedrich steffani) writes:
> extern FLT tsin[L_SIN_TAB+L_4_SIN_TAB+1];
> void init_entkop()
> { /* INITALISIERUNG */
>     WORD i;		  /* Laufvariable	 */
>     DBL	 argument;	  /* Argument	 */
>
>     for (i = 0; i < L_SIN_TAB + L_4_SIN_TAB; i++)
>     { /* Berechnung sin Tabelle */
>
> 	argument = (FLT)2.0 * (FLT)PI / (FLT)L_SIN_TAB
> 		 * (FLT)i;
>
>        tsin[i]	 =  (FLT) sin( argument );
>     } /* Berechnung sin Tabelle */

This doesn't really address the point, and I'm sorry for that.

The first thing I note is that if this is the file that "owns"
tsin[], you don't want "extern" there, and if it isn't the file
that "owns" tsin[], you don't want L_SIN_TAB+L_4_SIN_TAB+1 there.

The second thing I note is that the last elements of tsin[] is
not initialised.  I presume that it should have read

	#define TOTAL_L_SIN_TAB (L_SIN_TAB + L_4_SIN_TAB + 1)
	FLT tsin[TOTAL_L_SIN_TAB];
	...
	    for (i = 0; i < TOTAL_L_SIN_TAB; i++) {
		...
	    }

The third thing I note is that those (FLT) casts and so on all over the
place are not buying you the least little thing by way of portability.

The library function "sin" has this prototype:
	double sin(double);
Giving it an argument that is not 'double' will if anything make
it _less_ portable.

How about "i"?  Well, I note that it is legal to form
	&tsin[0], &tsin[1], ... &tsin[TOTAL_L_SIN_TAB]
and no others, and that the possible values of i are the
possible values of the expression
	&tsin[i] - &tsin[0]
where the left operand is legal.  That is, all the legal values of
i must belong to the standard integral type "ptrdiff_t".  So...

	
	#include <stddef.h>
	#include <math.h>

	#define TOTAL_L_SIN_TAB (L_SIN_TAB + L_4_SIN_TAB + 1)

	FLT tsin[TOTAL_L_SIN_TAB];

	void init_entkop()
	    {
		ptrdiff_t i;

		for (i = 0; i < TOTAL_L_SIN_TAB; i++)
		    tsin[i] = sin((2.0*PI/L_SIN_TAB)*i);
	    }

No casts needed.  This code will be intelligible to C programmers
who are not familiar with WORD, FLT, DBL, and so on.  (I would expect
WORD to be an unsigned integral type, but what size it might be defeats me.)
(I can prove that any valid array subscript must belong to ptrdiff_t.
 I _believe_ that array sizes are "int", but I'm not sure about that.)

I am rather worried by the comment:

> perhaps there a some square-brackets lost; tsin
> is a array of L_SIN_TAB elements.

It appears to be an array of L_SIN_TAB + L_4_SIN_TAB + 1 elements.

The only thing I can think of that addresses the problem is that something
in PORTAB.H or the other code preceding init_entkop() in the file where you
want it might be #defining sin() or PI.  You could try
	#undef sin
and you could try 
	    fprintf(stderr, "PI = %g, sin(PI) = %g\n", PI, sin(PI));
to see whether something strange has happened to PI or sin(),
but I am grasping at straws.
From: wenner@einstein.eds.com (Rich Wenner)
Newsgroups: comp.lang.c
Subject: Re: "Illegal Pointer Arithmetic" error
Date: 13 Oct 92 14:38:33 GMT
Distribution: usa
Organization: Electronic Data Systems

In article <1992Oct9.152836.27208@cc.gatech.edu> byron@cc.gatech.edu (Byron A Jeff) writes:
:In article <30SEP199207430542@accvio.intel.com> dmills@accvio.intel.com (Dave Mills) writes:
::In article <6518@blue.cis.pitt.edu.UUCP>, willdm+@pitt.edu (William D Moore) writes...
:::Can anyone tell me why I get the compile time error "Illegal Pointer 
:::Arithmetic" ... 

:::------------->	     *buf++=NULL;

[Rest of William's original question and Dave's correct answer deleted]

:Dave I don't think that's the problem. The error is caused by a lack of spacing.
:What William wants the code to do is:
:
:   *buf++ = NULL;
:
:However because of the spacing there is an ambigous arithmetic construct here.

No, there isn't.

:The compiler is probably interpreting this as:
:
:   *buf+ += NULL;

It had better not be!  To quote the standard, section 3.1, the second
paragraph under "Semantics".

	If the input stream has been parsed into preprocessing tokens
	up to a given character, the next preprocessing token is the
	longest sequence of characters that could constitute a pre-
	preocessing token.

For those netters who don't speak English, and for those who do ;-)
the example given on the next page is a lot clearer:

	The program fragment x+++++y is parsed as x ++ ++ + y, which
	violates a constraint on increment operators, even though the
	parse x ++ + ++ y might yield a correct expression.

So, the parse of the originally questioned expression is * buf ++ = NULL,
which is exactly what William intended.

:which is not only illegal arithmetic but also a syntax error. 

Yeah, that's why it doesn't do it!

-- 
Rich Wenner               | It is by the goodness of God that in our country we
wenner@csid.gmeds.com     | have those 3 unspeakably precious things:  freedom
                          | of speech, freedom of conscience, and the prudence
#include <stddisclaim.h>  | never to practice either of them.      Mark Twain
From: wilson@rhombus.cs.jhu.edu (Dwight Wilson)
Subject: Re: No typedef
Organization: The Johns Hopkins University CS Department
Date: Mon, 12 Oct 1992 17:03:30 GMT

In article <1992Oct11.192657.7275@waggen.twuug.com> alpha@waggen.twuug.com (Joe Wright) writes:
>My C compiler does not support typedef.  I emulate typedef like this:
>
>#define nutyp struct nutyp
>	nutyp {
>		int ID;
>		char Name[32];
>	};
>
>	nutyp Person, *PersPtr;
>
>Is this 'as good as' a real typedef?  It seems to work here.

Dave Schaumann has already mentioned the problem with typedef'ing
arrays.  There is also a subtle difference between typedef and
#define that arises with 'const'.  Consider:

typedef int * pint
#define defpint int *

These two lines look like they do the same thing, create a 
synonym of a pointer to int.  Now look at these declarations

const pint p;  /* this should have an initializer */

This declares that p is a const pointer to an int.

const defpint p;  

This expands to 'const int * p', so p is a pointer to a const int.

-Dwight

Newsgroups: comp.lang.c,comp.software-eng,comp.sys.mac.programmer
From: cjh1@ellis.uchicago.edu (chi ju huang)
Subject: Productivity of a C programmer ?
Reply-To: cjh1@midway.uchicago.edu
Organization: University of Chicago Computing Organizations
Date: Thu, 8 Oct 1992 18:47:18 GMT

Hello, world.

Could any one show me the light on
"Average productivity of a C programmer in today's industry in terms of
number of lines of source code produced per day."

What I need is the number (lines/day), the conditions and the assumptions
under which the number is derived, and the reliable source of this model.

I need this information to estimate the cost of a new project and to convince
people whether it is worth of the effort or not.

Any hint would be greatly appreciated.

-- cjh		cjh1@ellis.uchicago.edu
From: scott@mcl.ucsb.edu (Scott Bronson)
Newsgroups: comp.lang.c
Subject: Re: Is there is (pascal) WITH equivalent in C?
Date: 7 Oct 92 23:28:07 GMT

In <djd.718456055@reading> djd@csg.cs.reading.ac.uk (David J Dawkins) writes:

>In article <scott.718402547@mcl> scott@mcl.ucsb.edu (Scott Bronson) writes:
>> Niklaus Wirth, who do you think?  I like Pascal's "^." pointer indirection
>> much better than C's "(*a).next".
>                        ^^^^^^^^^
>WHAT????!!!! 
>"a->next" preferred over "(*a).next".

Thanks for selectively editing my message so that you can look so sage.
Here's the actual article that I posted:
-------
Niklaus Wirth, who do you think?  I like Pascal's "^." pointer indirection
much better than C's "(*a).next".  The "->" is only a shortcut as you will
quckly find when you attempt double-indirection.
-------
Get it now?

	- Scott

P.S.  In the article just before, (dik@cwi.nl) Dik T. Winter said:
>Argh.  "^." is two operators.  The first is "^" for indirection and the second
>is "." for selection.

Oops, you're right.  But, then again, so is (*a).bar...
Newsgroups: comp.lang.c
From: robc@crash.cts.com (Robert Cowan)
Subject: Re: Fast way of counting number of bits =1 in an int.
Organization: CTS Network Services (crash, ctsnet), El Cajon, CA
Date: 11 Oct 92 19:42:55 PDT


Ruchir:
   Here's a little frag that a buddy and I hashed out on a cocktail napkin
over many an alcoholic beverage (I didn't have the napkin, so this may be a
little off, although it looks fine):

unsigned char
onbits(unsigned i)
{
   unsigned char onbits_cnt = 0;
   unsigned      mask;

   while (i)
   {
      mask = (~i + 1);
      i = (i | mask) ^ mask;
      onbits_cnt++;
   }
   return onbits_cnt;
}

   Anyway, the idea is the find the first set bit, eliminate it, and iterate.
I just ran it against a few ints and it worked, but I'd just like to disclaim
it since it is from memory.. your milage may vary.

Regards,
Rob (robc@cyber.net | robc@crash.cts.com)
From: rehak@breeze.rap.ucar.edu (Nancy Rehak)
Newsgroups: comp.lang.c
Subject: Re: Question about fread() and fwrite()!
Date: 16 Oct 92 13:54:51 GMT
Organization: NCAR / RAP

In article <chupchup.719226774@piggy> chupchup@ferkel.ucsb.edu (Robert Earl) writes:
>ren@miles.mps.ohio-state.edu (Liming Ren) writes:
>
		< stuff about fread/fwrite deleted >

>| Another question is: Is the size of a structure the summation of all
>| the size of its elements? If not, any formula for it beside using
>| sizeof()?
>
>Yes, it is the sum of all the elements' sizes.
>
>-- 
>robert earl          |
>rearl@ucsd.edu       | "I got a bottle of tequila, baby, who needs friends?"
>rearl@piggy.ucsb.edu |   --Johnette Napolitano, Concrete Blonde


This is not quite true.  The size of a structure is at least the sum of the
sizes of its elements.  Some systems (UNIX, for example) add padding to a
structure to achieve the proper data alignment.  For example, the following
structure:

struct example {
		char    elem1;
		int     elem2;
}

on my SUN system has a size of 8 bytes (1 byte char, 3 bytes "padding",
4 bytes int) rather than the expected 5 bytes.  sizeof() takes the padding
into account and gives you the true structure size on the system you are
using.

Nancy Rehak
Newsgroups: comp.lang.c
From: jes@grendel.demon.co.uk (Jim Segrave)
ReplyTo: jes@grendel.demon.co.uk
Subject: Re: Strings and integer sizes
Distribution: world
X-Mailer: cppnews $Revision: 1.18 $
Organization: None
Date: Sat, 3 Oct 1992 19:51:37 +0000


In article <9227705.8771@mulga.cs.mu.OZ.AU> fjh@munta.cs.mu.OZ.AU (Fergus James HENDERSON) writes:

> 
> >Multiple choice question:
> >
> >A string is stored
> >	a. in an array of characters
> >	b. in an array of characters terminated with 0
> >	c. in an array of characters terminated with '\0'
> 
> Well, the answer is:
> 	d. all of the above

What about:

char zoe[3] = "123";

neither b. nor c. applies here.
 
 
--
Jim Segrave (Segrave Software Services)     jes@grendel.demon.co.uk

Xref: sparky comp.lang.c:14632 comp.sources.wanted:4582 comp.msdos.programmer:68 comp.misc:3909
From: jmd@obadiah.sbc.com (James M. Doherty)
Newsgroups: comp.lang.c,comp.sources.wanted,comp.msdos.programmer,comp.misc
Subject: Re: Wanted: C-isam library for Turbo C or Microsoft C
Date: 7 Oct 92 14:28:42 GMT
Organization: Southwestern Bell Technology Resources, St.Louis, MO
X-Newsreader: Tin 1.1 PL4

Does the DataBase Toolkit support commit and rollback ?

What about foreign keys etc... ?




<<<<<<<<<<<< jmd@sbctri.sbc.com >>>>>>>>>>>>


================================
|James M Doherty               |
|Member Technical Staff        |
|EMAIL:     jmd@sbctri.sbc.com |
|FAX:    314-529-7573          |
|PHONE:    314-529-7794        |
================================
|Technology Resources Inc.     |
|Suite 400                     |
|550 Maryvillie Dr.            |
|St. Louis, Mo. 63141-5814     |
================================
--


<<<<<<<<<<<< jmd@sbctri.sbc.com >>>>>>>>>>>>
Newsgroups: comp.lang.c,comp.lang.c++,comp.lang.pascal,comp.ai.neural-nets
From: jonm@Ingres.COM (DON'T TEST AN M16 IN A CHINA SHOP. (ANCIENT PROVERB))
Subject: Re: pattern classification / template maching
Summary: 
News-Software: VAX/VMS VNEWS 1.4-b1  
Keywords: 
Organization: ASK Computer Systems, Ingres Product Division
Date: 16 Oct 92 13:22:34 GMT

In article <1992Oct15.165228.12183@alcatel.ch>, thomas.vannes@alcatel.ch                                         writes...
>I'm looking for a piece of code in c or pascal to do the following:
> 
>In our firm we have all kinds of parts needed in manufacturing
>that have names which differ slightly. These parts are to be
>classified. The idea is to be able to enter a fragment of a name
.
.
.
>in word prcessing programs, but they use large databases.

Try the following....

#include <stdio.h>

#define TRUE        1
#define FALSE       0

#define ONE_CHAR    '?'
#define MANY_CHAR   '*'

main(argc, argv)
int argc;
char *argv[];
{

    char    source[100], pattern[100];

    strcpy(source, argv[1]);
    strcpy(pattern, argv[2]);

    if (search(source, pattern))
        printf("Found pattern '%s' in '%s'\n", pattern, source);
    else
        printf("Could not Find pattern '%s' in '%s'\n", pattern, source);
}


search(src, pattern)
char    *src, *pattern;
{

    char    *s=src, *p=pattern, c, *ptr;

    while (c = *p) {                          /* For duration of pattern */
        switch(c) {
            case ONE_CHAR:                  /* Wild character */
                break;
            case MANY_CHAR:
                while (c == MANY_CHAR)      /* '***' = '*' */
                    c = *++p;

                ptr=strchr(s, ONE_CHAR);
                if (ptr != NULL) {
                    p++;
                    break;
                }

                if ((s = strchr(s, c)) == NULL)
                    return FALSE;           /* Find char after '*' */
                continue;
            default:
                if (*p != *s)               /* Do characters match?? */
                    return FALSE;
        }
        p++; s++;                           /* Increment each index */
    }

    return (*s || *p) ? FALSE : TRUE;       /* Is one longer than the other? */
}

Does everything but look for regular expressions.  If you can add to it
I would like to use it.

Jon Machtynger
Newsgroups: comp.lang.c
From: s48054005%vax9k.dnet@nchud1.nchu.edu.tw (My name is...)
Subject: Question: QuickBasic + Turbo C graphics lib.
Organisation: National Chung Hsing University, Taiwan
Organization: NCHU, TAIWAN 
Date: Sat, 3 Oct 1992 04:26:44 GMT


I am a MS lang. serious user, but I do like the Turbo serious graphics
ability, BGI, polyline, fonts or so....

Here, may I use MS serious,MASM,MSC,QC,QB to link with the TURBO C
graphics lib. ? 
Or may I use the obj. made by TC ? 

Thanks for any advice
Newsgroups: comp.lang.c